openid.connect.token
method
Welcome to the new home of Slack developer docs!
We're still building and not all features are available quite yet. Enjoy this peek into the future!
Not ready for the future? Return to the past at api.slack.com.
Usage info
This special method is part of implementing Sign in with Slack.
As part of Sign in with Slack, this method allows your app to receive information about a user who signs into your service with their Slack profile.
A potential gotcha: while redirect_uri
is optional, it is required if your app passed it as a parameter to /openid/connect/authorize
in the first step of the Sign in with Slack flow.
Response
The id_token
in the response is a standard JSON Web Token (JWT). . When it's decoded, you'll see a payload like:
"iss": "https://slack.com",
"sub": "U0R7MFMJM",
"aud": "25259531569.11152291",
"exp": 1626874955,
"iat": 1626874655,
"auth_time": 1626874655,
"nonce": "abcd",
"at_hash": "tUbyWGBHe0V32FJEupkgVQ",
"https://slack.com/team_id": "T0RR",
"https://slack.com/user_id": "U0JM",
"email": "bront@slack-corp.com",
"email_verified": true,
"date_email_verified": 1622128723,
"locale": "en-US",
"name": "brent",
"given_name": "",
"family_name": "",
"https://slack.com/user_image_24": "https://secure.gravatar.com/avatar/bc.png",
"https://slack.com/user_image_32": "...",
"https://slack.com/user_image_48": "...",
"https://slack.com/user_image_72": "...",
"https://slack.com/user_image_192": "...",
"https://slack.com/user_image_512": "...",
"https://slack.com/team_image_34": "...",
"https://slack.com/team_image_44": "...",
"https://slack.com/team_image_68": "...",
"https://slack.com/team_image_88": "...",
"https://slack.com/team_image_102": "...",
"https://slack.com/team_image_132": "...",
"https://slack.com/team_image_230": "...",
"https://slack.com/team_image_default": true
iss
, sub
, aud
, exp
, iat
, auth_time
, nonce
, and at_hash
are each defined by the OpenID standard, but here's an overview:
iss
signifies the issuer of the token.sub
signifies the subject of the token.aud
signifies the intended audience of the token, the client ID of the OpenID Relying Party.exp
signifies the expiration time of the request, meaning that it shouldn't be trusted if it's not received by the expiration time.iat
signifies the time when the token was issued.auth_time
signifies the time when the end-user authenticated.nonce
is a state variable that you pass to the/openid/connect/authorize
endpoint at the beginning of Sign in with Slack, and that Slack then returns to you at the end of the flow here. Verify that it matches thenonce
you passed to/authorize
.