/authorize
endpoint and the /oauth/token
endpoint.
/authorize
endpoint is used to interact with the resource owner and get the authorization to access the protected resource. To better understand this, imagine that you want to log in to a service using your Google account. First, the service redirects you to Google in order to authenticate (if you are not already logged in) and then you will get a consent screen, where you will be asked to authorize the service to access some of your data (protected resources); for example, your email address and your list of contacts.
The request parameters of the /authorize
endpoint are:
Parameter | Description |
---|---|
response_type | Tells the authorization server which grant to execute. |
response_mode | (Optional) How the result of the authorization request is formatted. Values: - query : for Authorization Code grant. 302 Found triggers redirect. - fragment : for Implicit grant. 302 Found triggers redirect. - form_post : 200 OK with response parameters embedded in an HTML form as hidden parameters. - web_message : For Silent Authentication. Uses HTML5 web messaging. |
client_id | The ID of the application that asks for authorization. |
redirect_uri | Holds a URL. A successful response from this endpoint results in a redirect to this URL. |
scope | A space-delimited list of permissions that the application requires. |
state | An opaque value, used for security purposes. If this request parameter is set in the request, then it is returned to the application as part of the redirect_uri . |
connection | Specifies the connection type for Passwordless connections |
/authorize
endpoint to authenticate a user. You can use custom query parameters to provide additional context to the page template for the experience.
You must enable ID First to use the connection
parameter. For more information on the connection
parameter and the Universal Login experience, review Passwordless for Universal Login.
Query parameters prefixed with ext-
automatically appear in the page template context.
This endpoint is used by the Authorization Code and the Implicit grant types. The authorization server needs to know which grant type the application wants to use since it affects the kind of credential it will issue:
/oauth/token
endpoint).response_type
request parameter is used as follows:
response_type=code
to include the authorization code.response_type=token
to include an access token. An alternative is to use response_type=id_token token
to include both an access token and an .response_mode
. It is optional and can take the following values:
Value | Description |
---|---|
query | This is the default for Authorization Code grant. A successful response is 302 Found which triggers a redirect to the redirect_uri . The response parameters are embedded in the query component (the part after ? ) of the redirect_uri in the Location header. For example: HTTP/1.1 302 Found Location: https://my-redirect-uri.callback?code=js89p2x1 where the authorization code is js89p21 . |
fragment | This is the default for Implicit grant. A successful response is 302 Found , which triggers a redirect to the redirect_uri (which is a request parameter). The response parameters are embedded in the fragment component (the part after # ) of the redirect_uri in the Location header. For example: HTTP/1.1 302 Found Location: https://my-redirect-uri/callback#access_token=eyB…78f&token_type=Bearer&expires_in=3600 . |
form_post | The response mode is defined by the OAuth 2.0 Form Post Response Mode specification. A successful response is 200 OK and the parameters are embedded in an HTML form as hidden params. The action of the form is the redirect_uri and the onload attribute is configured to submit the form. After the HTML is loaded by the browser, a redirect to the redirect_uri is done. |
web_message | This response mode is defined in OAuth 2.0 Web Message Response Mode specification. It uses HTML5 Web Messaging instead of the redirect for the authorization response from the /authorization endpoint. This is particularly useful when using Silent Authentication. To do this response mode, you must register your app’s URL at the Allowed Web Origins field in your Auth0 application settings. |
/oauth/token
endpoint is used by the application in order to get an access token or a . It is used by all flows except for the Implicit Flow because in that case an access token is issued directly.
state
parameter that allows you to restore the previous state of your application. The state
parameter preserves some state object set by the client in the Authorization request and makes it available to the client in the response. The primary reason for using the state parameter is to mitigate CSRF attacks. See Use OAuth 2.0 State Parameters for details.