@KomeijiSatori
2017-10-08T16:38:27.000000Z
字数 1689
阅读 1757
即 client-side 模式,是OAuth2.0认证的一种模式,又称User-Agent Flow;
适用于需要通过客户端访问的方式,例如需要通过浏览器的javascript代码,或者电脑/移动终端上的客户端访问时。
其授权验证流程示意图如下
请求地址:
https://neko.store/authorize.html
请求方法:GET
请求参数请包含如下内容:
client_id
(申请App成功后,分配给应用的id。)state
(client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回)如果用户成功授权,则会跳转到指定的回调地址,并在URL后带上code参数。如果请求参数中传入了 state
,这里会带上原始的 state
值。如:https://neko.store/oauth/redirect?code=54f3fad485dc53ef&state=login
code
参数单次使用有效,过期时间600秒
接口调用有错误时,会返回 status
和 message
字段,以json的形式返回
请求地址:
https://neko.store/index.php/oauth/get_access_token
请求方法:POST
请求参数请包含如下内容:
code
(授权回调返回的code)secret_key
(App的秘钥)如果验证成功,服务端会返回json序列化后的Access Token以及过期时间
示例
{
"access_token":"OWUzYWZkNjMwN2YyZjc1NWU1MM3ZmQ4YzFkYTc",
"expire_at":1509183013
}
<div class="md-section-divider"></div>
参数 access_token
有效期30天,过期后需重新申请
接口调用有错误时,会返回 status
和 message
字段,以json的形式返回
请求地址:
https://neko.store/index.php/oauth/get_user_data
请求方法:GET
请求参数请包含如下内容:
access_token
(用户的Access Token)如果验证成功,服务端会返回json序列化后的用户数据
示例
{
"status": 200,
"uid": 288733962,
"first_name": "神楽坂 覚々",
"last_name": null,
"username": "KagurazakaSatori",
"language_code": "zh-Hans-CN",
"avatar": "https://cdn5.telesco.pe/file/QjcjLoEVvjuDes-R6SetgWES4af8u8spGcfJ-xtX7Bxaf8r_O_MmbW6tkWhI8zcOkACJQ7jPSZW7vag3-rMavd4fPzT9NPILopoyGQSOkXLcaWyqi3FA90URuuGMR3IQVsfs03I0MIxUcS-FWMPTzVsk6532W_Enkia7t5gbK-C9Jv5x4RH9zKxOJz4nlHSl437QjZsjqRlXLKO4X99f7oKWJumMxOXPNrgGt_PEYYnYWQMLeTQe9Nr6QJt2zg9jPwyFgc_KuRvv5QZP7OGI4BpqiUvs2DZ5D9a9BOYfdCpaas5VC5tEM8NvJzEPlqr7mJNEWVnMMvxm99LZIrdFDA",
"description": "(。・ω・。)ノ♡"
}
<div class="md-section-divider"></div>
username
为null的情况下, avatar
和 description
也会为null
接口调用有错误时,会返回 status
和 message
字段,以json的形式返回