获取登录用户access_token

获取登录用户授权码


注意:该请求不能以ajax的方式发起调用,需要以后端302重定向的方式发起,或者前端window.open的方式发起。

请求

基本
请求方式GET
请求地址1. 登录企业管理后台,选择指定的自建应用。
2. 在 “端点信息” 模块,获取应用 “认证端点”

请求参数

名称类型必填描述
client_idstring自建应用的Client ID
response_typestring固定值:code
redirect_uristring应用接收授权码的回调地址。该回调地址必须在“企业管理后台-自建应用-认证配置-登录回调地址”中配置。
statestring推荐使用,防CSRF攻击
认证完成后,OneID会原封不动的把state的值返回给redirect_uri。
scopestring推荐使用,应用需要OneID用户信息的范围。多个scope值以空格分割。

可选值参考:“企业管理后台-自建应用-Scope配置”,注意:
• scope中包含offline_access,则返回refresh_token
• scope中包含openid,则返回id_token

响应

成功响应

成功时,OneID会302重定向至请求中指定的redirect_uri,并携带授权码(code)、state参数返回。

示例

1https://example.com/oauth/callback?code=xxxx&state=xxxx

失败响应

失败时,OneID会302重定向至请求中指定的redirect_uri, 并携带error、error_description参数。

示例

1https://example.com/oauth/callback?error=xxxx&error_description=xxxx

获取access_token

请求

基本
请求方式POST
请求地址1. 登录企业管理后台,选择指定的自建应用。
2. 在 “端点信息” 模块,获取应用 “Token端点”

请求头

名称类型必填描述
Content-Typestring固定值:application/x-www-form-urlencoded

请求参数

名称类型必填描述
client_idstring自建应用的Client ID
grant_typestring固定值:authorization_code
codestring登录用户授权码。请注意,code 有效期为5分钟,且只能使用一次。
redirect_uristring生成“登录用户授权码”时传入的redirect_uri。请注意,指定到path,无需包含query。

响应

响应体

名称类型描述
access_tokenstring访问凭证
token_typestring领证受众。目前为不记名凭证,即Bearer
expires_inint凭证的有效期,单位:秒。
refresh_tokenstring用于刷新access_token。当生成“登录用户授权码”时scope包含offline_access时才会颁发。
id_tokenstringJWT格式的用户信息。当生成“登录用户授权码”时scope包含openid时才会颁发。

除了用户信息还包括OneID当前登录态的基本信息, 比如:
sid:OneID登录会话唯一标识
auth_time:OneID登录会话建立的时间戳
sexp:OneID登录会话过期的时间戳
amr:OneID登录会话使用的认证方式

刷新access_token

请求

基本
请求方式POST
请求地址1. 登录企业管理后台,选择指定的自建应用。
2. 在 “端点信息” 模块,获取应用 “Token端点”

请求头

名称类型必填描述
Content-Typestring固定值:application/x-www-form-urlencoded

请求参数

名称类型必填描述
client_idstring自建应用的Client ID
client_secretstring自建应用的Client Secret
grant_typestring固定值:refresh_token
refresh_tokenstring刷新令牌,用于刷新 access_token 以及 refresh_token

响应

响应体

名称类型描述
access_tokenstring访问凭证
refresh_tokenstring新生成的refresh_token,建议使用者保存并覆盖之前的refresh_token。
注:之前颁发的refresh_token并不会被注销。
token_typestring领证受众。目前为不记名凭证,即Bearer
expires_inint凭证的有效期,单位:秒。
id_tokenstringJWT格式的用户信息。当生成“登录用户授权码”时scope包含openid时才会颁发。

除了用户信息还包括OneID当前登录态的基本信息, 比如:
sid:OneID登录会话唯一标识
auth_time:OneID登录会话建立的时间戳
sexp:OneID登录会话过期的时间戳
amr:OneID登录会话使用的认证方式