Search for Cognito in the AWS Services search bar as shown below.
Click on Manage User Pools button to see the list of your user pools.
Click on Create a user pool to create a new user pool.
Add a Pool Name and click on the Review Defaults button to continue.
Scroll down and click on the Add App Client option in front of App Clients.
Enter an App Client Name and click on Create app client to create an App client.
Click on Return to Pool Details to come back to your configuration.
Click on Create Pool button to save your settings and create a user pool.
In the navigation bar present on the left side, click on the App Client Settings option under the App Integration menu.
Select Cognito User Pool checkbox under Enabled Identity Providers. Enter your Callback/Redirect URL which you will get from your miniOrange OAuth client module present on your Client side under the CallBack URls text-field. Select Authorization code grant checkbox under the Allowed OAuth Flows and also select openid and profile checkboxes under the Allowed OAuth Scopes option (Please refer to the image below). Click on the Save Changes button to save your configurations.
Click on Choose Domain Name option to set a domain name for your app.
Enter your Domain Name under the Domain Prefix text-field and click on the Save Changes button to save your domain name.
Click on App Clients option under the General Settings menu in the left side navigation bar. Then, click on the Show Details button to see your App details like Client ID, Client secret etc.
Copy the Client App ID and App Client Secret text field values and save them under your miniOrange OAuth client module present on the client side under the Client Id and the Client Secret text fields respectively.
You have successfully completed your AWS Cognito App OAuth Server side configurations.
Click on the link here to download the miniOrange OAuth Client module.
Scroll down and download module by clicking in the zip option under Downloads.
Login in your Drupal 8 site’s admin console and click on Extend from the top navigation bar.
Select the Install new module option to install a new module on your Drupal 8 site.
Upload the downloaded zip file of the Module and click on the Install button to continue.
Select Enable newly added modules.
Scroll down till you find miniOrange OAuth Client. Click on the checkbox next to it and click on the Install button to enable the module.
Click on Configuration from the top navigation bar and Select Drupal OAuth client Configuration.
Register/Login to your miniOrange account.
Click on the Configure OAuth Client tab and select your OAuth Provider from the Select Application dropdown. In case you do not find your OAuth Provider listed in the dropdown, please select Custom OAuth Provider and continue.
Enter your OAuth Provider information in their respective fields and click on the Save button to continue. Also, copy the Callback/Redirect URL and save it on your OAuth Provider.
Now click on the Test Configuration option. This Test Configuration link will give you the list of the attributes that are coming from your OAuth Provider.
Copy the email and the name attributes and save them under the Attribute & Role Mapping tab in the Email Attribute and Name Attribute text field respectively.
Please note: This step is mandatory for your login to work. Click on the Save button on the bottom of the page to save your attribute configurations.
Now logout and go to your Drupal 8 site’s login page, you will automatically find a Login withYour OAuth Provider link there. If you want to add your login link to other pages as well, please follow the steps given in the below image:
If you want to check out our complete list of features and our various licensing plans, you can go to the Licensing Plan tab in the module.
Still, if you are facing any difficulty or if you have any questions in mind, you can reach out to us by submitting a query in the Support tab of a module or by sending us a mail at email@example.com.
Congratulations, you have successfully configured the miniOrange Drupal 8 OAuth Client module.