登录接入引导
对于应用而言,其流程由获取Authorization Code和通过Authorization Code获取Access Token这2步组成。
获取Authorization Code
1. 请求数据包格式
http://passport.9211.com/oauth/login.aspx
其获取方式是通过重定向用户浏览器到上面地址,并带上以下参数:
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| App_id | True | long | 申请应用时分配的AppId |
| redirect_uri | True | String | 授权回调的地址 |
| response_type | True | String | 授权类型,固定为code |
2. 响应数据包格式
此时授权服务会根据用户登录状态决定是否为用户展现登录授权页面。如果用户已授权或同意授权,授权服务则将重定向用户浏览器到应用所指定的“redirect_uri”,并附带上表示授权服务所分配的Authorization Code的code参数
例如:继续上面的例子,假设授权服务在用户同意授权后生成的Authorization Code为“ANXxSNjwQDugOnqeikRMu2bKaXCdlLxn”,则授权服务将会返回如下响应包以重定向用户浏览器到“http://www.xxxxx.com/oauth_redirect”地址上:
Location:
http://www.xxxxx.com/oauth_redirect?code=ANXxSNjwQDugOnqeikRMu2bKaXCdlLxn
注意:
1) “code”参数可以在“redirect_uri”对应的应用后端程序中获取。
2) 每一个Authorization Code的有效期为10分钟。
通过Authorization Code获取Access Token
1. 请求数据包格式
通过上面第一步获得Authorization Code后,便可以用其换取一个Access Token。获取方式是,应用在其服务端程序中发送请求(POST)到OAuth2.0授权服务的地址"http://openapi.5211game.com:8080/oauth/access_token"上,并带上以下5个必须参数:
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| app_id | True | long | 申请应用时分配的AppId。 |
| app_secret | True | String | 申请应用时分配的appsecret。 |
| grant_type | True | String | 请求的类型,固定填写"authorization_code"。 |
| code | True | String | 调用authorize获得的code值。 |
| redirect_uri | True | String | 回调地址,需与注册应用里的回调地址一致。 |
例如:http://openapi.5211game.com:8080/oauth/access_token?app_id=10001& app_secret= 0rDSjzQ20XUj5itV7WRtznPQSzr5pVw2&grant_type=authorization_code&code= ANXxSNjwQDugOnqeikRMu2bKaXCdlLxn&redirect_uri=http%3A%2F%2Fwww.xxxxx.com%2Foauth_redirect
2. 响应数据包格式
若参数无误,服务器将返回一段JSON文本,包含以下参数:
| 返回值字段 | 字段类型 | 字段说明 |
|---|---|---|
| access_token | String | 用于调用access_token,接口获取授权后的access token。 |
| expires_in | long | access_token的生命周期,单位是秒数。 |
| uid | int | 当前授权用户的uid。 |
"access_token": "ACCESS_TOKEN",
"expires_in": 1234,
"uid":"12341234",
"scope":"users"
}
