1. 流程图
2. 流程简介
2.1 第一步
用户将账号密码提供给第三方Client
2.2 第二步
第三方请求AuthServer, 使用 用户名和密码 获取 ACCESS_TOKEN
POST /token HTTP/1.1
Host: authserver.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=password&username=johndoe&password=A3ddj3w
2.3 第三步
当AuthServer校验成功, 则返回 ACCESS_TOKEN
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
"example_parameter":"example_value"
}
3. 适用场景
有没有发现这个方式, 几乎和正常一个应用没啥区别
如果第三方应用Client就是官方出品的应用,又要使用 OAuth 2.0 来保护我们的 Web API,那么你这种方式,采用资源拥有者凭据许可类型。
举个例子, 语雀,钉钉,支付宝 他们其实就是阿里一家的, 就可以用这种方式互相登录