OAuth2.0学习(1-6)受权方式3-密码模式(Resource Owner Password Credentials Grant)

受权方式3-密码模式(Resource Owner Password Credentials Grant)json

密码模式(Resource Owner Password Credentials Grant)中,用户向客户端提供本身的用户名和密码。客户端使用这些信息,向"服务商提供商"索要受权。服务器

在这种模式中,用户必须把本身的密码给客户端,可是客户端不得储存密码。这一般用在用户对客户端高度信任的状况下,好比客户端是操做系统的一部分,或者由一个著名公司出品。而认证服务器只有在其余受权模式没法执行的状况下,才能考虑使用这种模式。app

密码模式

它的步骤以下:url

(A)用户向客户端提供用户名和密码。spa

(B)客户端将用户名和密码发给认证服务器,向后者请求令牌。操作系统

(C)认证服务器确认无误后,向客户端提供访问令牌。3d

B步骤中,客户端发出的HTTP请求,包含如下参数:code

  • grant_type:表示受权类型,此处的值固定为"password",必选项。
  • username:表示用户名,必选项。
  • password:表示用户的密码,必选项。
  • scope:表示权限范围,可选项。

下面是一个例子。orm

POST /token HTTP/1.1
     Host: server.example.com
     Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
     Content-Type: application/x-www-form-urlencoded

     grant_type=password&username=johndoe&password=A3ddj3w

C步骤中,认证服务器向客户端发送访问令牌,下面是一个例子。server

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" } 

整个过程当中,客户端不得保存用户的密码。

相关文章
相关标签/搜索