Enabling a redirect authentication
In some cases – for example when your buyers are using a mobile device – you will want to redirect buyers to the Amazon authentication page within the same window rather than presenting the buyer with a pop-up window.
In this section
- Procedure The changes you need to make to your website to enable a redirect authentication
- Cross-site request forgery How to prevent attackers from using a buyer's web browser to perform unwanted actions once the buyer is authenticated
- When a buyer denies consent How to handle cases when the buyer declines to grant you access to their Amazon Pay profile information during authentication
The changes you need to make to your website to enable redirect authentication are:
- Set the popup parameter to false in the button widget.
- Login to Seller Central and select Integration > Integration Central from the navigation bar on the top-left side
- Under the Manage client ID/store ID(s) section, click on View client ID/store ID(s)
- Choose your Amazon Pay application from the App or store name dropdown, and click Edit on the right hand side to add/edit your URLs
- Click Save changes when done
Cross-site request forgery happens when an attacker tricks a user into clicking a malicious link where the link goes to a site where the user is authenticated. Any commands embedded in the malicious link might be executed automatically because the user is already authenticated on the site so the user does not see a login screen or any other evidence of malicious activity. In the case of Login with Amazon, cross-site request forgery could be used to mimic a client or an authentication server.
When a client registers for Login with Amazon, they are assigned a client identifier (client_id) and a client secret (client_secret). The client verifies their identity using the client_id and client_secret parameters in access token requests (these values would have to be forged by an attacker).
Login with Amazon also uses the State parameter to prevent cross-site request forgery. The client sets the value of the State parameter when it initiates an authorization request. Unlike the client_id and client_secret values, the State value can and should be different for each authorization request. The authorization server returns the same value when communicating with the client to deliver authorization codes and access tokens. If the State parameter doesn't match the value from the initial call, the communication should be ignored. For more information about the state parameter and its use, see Cross-site request forgery in the Login with Amazon documentation.
The first time a buyer signs in and is authenticated on your website, they must give their consent to share their Amazon Pay profile information with you. If a buyer clicks the Cancel button on the consent screen during a redirect authentication and denies you consent, Amazon Pay forwards the buyer to the redirect URL, but instead of passing back an AccessToken, an error description is returned.
Note that an AccessToken is returned in the URL fragment, where an error description is returned via a query string. Before rendering the redirect URL, you need to check for a query string with an error description and, if found, redirect the buyer to the page where the login process was initiated.
The following example shows a URL fragment where the buyer gave their consent to share their Amazon Pay profile information with you.
The following example shows an error description returned in the query string when a buyer declines to share their profile information with you.