https://sso.maxkey.org/maxkey/oauth/v20/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI2.页面跳转至
YOUR_REGISTERED_REDIRECT_URI/?code=CODEsss3.换取Access Token
https://sso.maxkey.org/maxkey/oauth/v20/token?client_id=YOUR_CLIENT_ID&client_secret=YOUR _SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE返回值
{ "access_token":"SlAV32hkKG", "remind_in ":3600, "expires_in":3600 }
<tr>
<th> <strong>接口 </strong> </th>
<th> <strong>说明 </strong> </th>
<th> <strong>详细说明 </strong> </th>
<th> <strong>调用方法 </strong> </th>
</tr>
<tr>
<td> /oauth/v20/authorize </td>
<td> 请求用户授权Token </td>
<td> https://sso.maxkey.org/maxkey接收app sso认证请求,<br>client_id为需要认证的应用的id;</td>
<td> APP </td>
</tr>
<tr>
<td> /oauth/v20/token </td>
<td> 获取授权过的 Access Token </td>
<td> 后台应用获取 tokencode ,调用接口进行 tokencode 校验;<br>校验成功获取访问 token </td>
<td> APP </td>
</tr>
<tr>
<td> /api/oauth/v20/me </td>
<td> 授权用户信息查询接口 </td>
<td> 通过访问 token 获取登录用户信息 </td>
<td> APP </td>
</tr>
接口名称 | 请求用户授权Token |
---|---|
url | https://sso.maxkey.org/maxkey/oauth/v20/authorize |
请求方式 | http get/post |
参数 | 说明 |
---|---|
client_id | 注册应用时分配的client_id。 |
redirect_uri | 应用回调地址,注册时需要配置 |
grant_type | 授权类型。 |
etc param | 其他参数。 |
响应返回app应用程序,包含请求参数如下: | |
http://app.maxkey.org/app/callback?tokencode =PQ7q7W91a-oMsCeLvIaQm6bTrgtp7 | |
tokencode | 用于调用oauth/token,接口获取授权后的访问token。 |
通过/oauth/v20/token用tokencode换取访问token
接口名称 | token 接口 |
---|---|
url | https://sso.maxkey.org/maxkey/api/oauth/v20/me |
请求方式 | http get/post |
参数 | 说明 |
---|---|
access_token | 调用sso/ token获得的token值。 |
实际请求如下:
|
|
返回数据/ response data | |
成功返回JSON数据,如下:
zhangs是认证的用户ID |
属性名(Attribute) | 描述 | 数据类型 |
---|---|---|
uid | uid | 字符串 |
{
"error":"unsupported_response_type",
"error_description":"不支持的 ResponseType."
}
OAuth2.0错误响应中的错误码定义如下表所示:
<thead>
<th>编号</th><th>错误码(error)</th><th>描述(error_description)</th>
</thead>
<tbody>
<tr>
<td>1</td>
<td>empty_client_id</td>
<td>参数client_id为空</td>
</tr>
<tr>
<td>2</td>
<td>empty_client_secret</td>
<td>参数client_secret为空</td>
</tr>
<tr>
<td>3</td>
<td>empty_redirect_uri</td>
<td>参数redirect_uri为空</td>
</tr>
<tr>
<td>4</td>
<td>empty_response_type</td>
<td>参数response_type为空</td>
</tr>
<tr>
<td>5</td>
<td>empty_code</td>
<td>code为空</td>
</tr>
<tr>
<td>6</td>
<td>app_unsupport_sso</td>
<td>应用不支持sso登录</td>
</tr>
<tr>
<td>7</td>
<td>app_unsupport_oauth</td>
<td>应用不支持OAuth认证</td>
</tr>
<tr>
<td>8</td>
<td>invalid_client_id</td>
<td>非法的client_id</td>
</tr>
<tr>
<td>9</td>
<td>invalid_response_type</td>
<td>非法的response_type</td>
</tr>
<tr>
<td>10</td>
<td>invalid_scope</td>
<td>非法的scope</td>
</tr>
<tr>
<td>11</td>
<td>invalid_grant_type</td>
<td>非法的grant_type</td>
</tr>
<tr>
<td>12</td>
<td>redirect_uri_mismatch</td>
<td>非法的redirect_uri</td>
</tr>
<tr>
<td>13</td>
<td>unsupported_response_type</td>
<td>不支持传递的response_type</td>
</tr>
<tr>
<td>14</td>
<td>invalid_code</td>
<td>非法的code</td>
</tr>
<tr>
<td>15</td>
<td>unsupported_refresh_token</td>
<td>不支持refresh_token的方式</td>
</tr>
<tr>
<td>16</td>
<td>access_token_exprise</td>
<td>access_token过期</td>
</tr>
<tr>
<td>17</td>
<td>invalid_access_token</td>
<td>非法的access_token</td>
</tr>
<tr>
<td>18</td>
<td>invalid_refresh_token</td>
<td>非法的refresh_token</td>
</tr>
<tr>
<td>19</td>
<td>refresh_token_exprise</td>
<td>refresh_token过期</td>
</tr>
本文使用JAVA WEB程序为例
jar包依赖如下
https://github.com/shimingxy/MaxKey-Demo/tree/master/maxkey-demo-oauth/lib
认证跳转
获取令牌及用户信息