简化授权码认证
前端发起应用单点认证时,通过获取的client_id参数,组装认证请求url,发起访问。
# 请求说明
GET https://{your_domain}/api/v1/oauth2/authorize
# 请求参数:
参数名 | 中文名称 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
response_type | 授权类型 | 必须 | token | 此值固定为token |
client_id | 应用标识 | 必须 | RqB2HiHC9N676qA | 申请接入后分配给第三方应用的clientid。 |
redirect_uri | 回调地址 | 可选 | http://oauthdemo.bccastle.com /demo/index.jsp | 授权后的回调地址, 必须是注册应用时填写的可信域名一致, 注意需要将url进行URLEncode。 |
state | 状态码 | 可选 | 15924362 | client端状态值。用于防止CSRF攻击, 成功授权后回调时会原样带回。 请检查用户与state状态绑定。 |
scope | 适用范围 | 可选 | get_user_info | 此值固定为get_user_info |
# 请求示例
https://{your_domain}/api/v1/oauth2/authorize?response_type=token&client_id={client_id}&redirect_uri=http://oauthdemo.bccastle.com/demo/index.jsp&state=15924362
# 返回示例
正确返回示例
HTTP Status: 302 REDIRECT
http://oauthdemo.bccastle.com/demo/index.jsp/#access_token=NObiIMkOvBgHIo8&token_type=Bearer&expires_in=6285&scope=get_user_info&state=15924362
client_id参数缺失
HTTP Status: 400 BAD REQUEST
{
"error": "invalid_request",
"error_description": "Missing client_id"
}
client_id参数不正确
HTTP Status: 400 BAD REQUEST
{
"error": "invalid_request",
"error_description": "client_id parameter is error"
}
response_type参数名称、值错误
HTTP Status: 400 BAD REQUEST
{
"error": "unsupported_response_type",
"error_description": "Unsupported response types: [xxx]"
}
redirect_uri 参数不正确
HTTP Status: 400 BAD REQUEST
{
"error": "invalid_request",
"error_description": "Invalid redirect: https://www.baidu.com does not match one of the registered values."
}
scope参数不正确
HTTP Status: 302
{redirect_uri}?error=invalid_scope&error_description=Invalid scope: xxx&state=123456
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 返回参数
如果用户成功登录并授权,则会跳转到指定的回调地址,并在redirect_uri地址后带上Authorization Code和原始的state值。
参数名 | 中文名称 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
access_token | 授权令牌 | 必须 | NObiKQS-cn8AWnZyIMkOvBgHIo8 | 作为URL锚点参会,并不是query参数 |
token_type | 令牌类型 | 必须 | Bearer | 固定 Bearer |
expires_in | 授权令牌的有效期 | 必须 | 7199 | 授权服务器返回给应用的访问票据的有效期。注意:有效期以秒为单位。 |
scope | 授权范围 | 必须 | get_user_info | 固定 get_user_info |
state | 应用端的状态码 | 可选 | 15924362 | client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。 |
下一步:获取用户信息