简化授权码认证

前端发起应用单点认证时,通过获取的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

# 返回参数

如果用户成功登录并授权,则会跳转到指定的回调地址,并在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攻击,成功授权后回调时会原样带回。

下一步:获取用户信息