获取访问令牌
引导用户授权
客户端携带 client_id, scope, redirect_uri, state 等信息引导用户请求授权服务器的授权端点下发 code
获取授权码
将用户 302 重定向
https://account.lolinya.net/authorize
携带请求参数
参数名称 | 是否必须 | 描述信息 |
---|---|---|
client_id | 必须 | 客户端ID,用于标识一个客户端,在注册应用时生成(即 AppId) |
state | 推荐 | 用于维持请求和回调过程中的状态,防止CSRF攻击,服务器不对该参数做任何处理,如果客户端携带了该参数,则服务器在响应时原封不动的返回 |
redirect_uri | 可选 | 授权回调地址(默认读取在注册应用时配置的) |
scope | 可选 | 权限范围,用于对客户端的权限进行控制,如果客户端没有传递该参数,那么服务器则以该应用的所有权限代替(所有权限默认读取在注册应用时配置的) |
response_type | 可选 | 对于授权码模式 response_type=code ,默认为此项,无需单独传递 |
用户授权
用户在完成授权后,将会被重定向到创建应用时指定的地址,并携带请求参数
名称 | 描述信息 |
---|---|
code | 授权码,授权码代表用户确认授权的暂时性凭证,只能使用一次,5分钟内有效 |
state | 如果客户端传递了该参数,则原封不动返回 |
下发访问令牌
授权服务器在下发授权码之后,客户端或资源服务器,将携带刚刚下发的授权码请求以下地址
请求方法 POST
中国大陆镜像地址
https://api.liyxi.com/node/v0/token
请求体
名称 | 是否必须 | 描述信息 |
---|---|---|
grant_type | 必须 | 对于授权码模式 grant_type=authorization_code |
code | 必须 | 上一步骤获取的授权码 |
redirect_uri | 必须 | 授权回调地址 |
client_id | 必须 | 客户端 ID,用于标识一个客户端,等同于 appId ,在注册应用时生成 |
client_secret | 必须 | 客户端秘钥,等同于 appSecret ,在注册应用时生成 |
type | 可选 | 如果 type=info 则直接下发用户基础信息,而不是 token |
响应体
名称 | 描述信息 |
---|---|
access_token | 访问令牌 |
token_type | 访问令牌类型,比如 bearer,mac 等等 |
expires_in | 访问令牌的生命周期,以秒为单位,表示令牌下发后多久时间过期 |
refresh_token | 暂不开放,一般用户返回 refresh_token=null |
scope | 用户实际权限范围,如 [1,2,3,4] ,具体参见权限列表 |
如果 type=info
,则响应体如下
名称 | 描述信息 |
---|---|
uid | 用户唯一标识符 |
nickname | 用户昵称 |
status | 用户当前在系统中的状态 |
avatar | 用户头像 url |