密码模式(Resource Owner Password Credentials Grant)中,用户向客户端提供自己的用户名和密码。客户端使用这些信息,向"服务商提供商"索要授权。
在这种模式中,用户必须把自己的密码给客户端,但是客户端不得储存密码。这通常用在用户对客户端高度信任的情况下,比如客户端是操作系统的一部分,或者由一个著名公司出品。而认证服务器只有在其他授权模式无法执行的情况下,才能考虑使用这种模式。
(A)用户向客户端提供用户名和密码。 (B)客户端将用户名和密码发给认证服务器,向后者请求令牌。 (C)认证服务器确认无误后,向客户端提供访问令牌。
参数字段 | 是否必须 | 说明 |
---|---|---|
user_account | 必须 | 用户登录名 |
user_password | 必须 | 用户登陆密码 |
client_id | 必须 | 用户登录后,接入应用成功后,分配的client_id。 |
client_secret | 必须 | 用户登录后,接入应用成功后,分配的client_secret。 |
return_refresh_token | 可选 | 是否返回刷新token,1表示返回,其他值表示不返回,默认不返回 |
grant_type | 必须 | 授权类型,此值固定为"password" |
{ "status": 0, "message": "success", "expires_in": 2592000, "access_token": "省略", "refresh_token": 省略, "open_id": "省略", "open_key": "省略" }
参数字段 | 说明 |
---|---|
status | 请求返回状态码,具体见附录 |
message | 请求返回信息描述 |
expires_in | access_token的过期时长,以秒为单位 |
access_token | 访问资源API的凭证 |
refresh_token | 请求刷新令牌的凭证 |
open_id | 用户统一标识,可以唯一标识一个用户。网站或应用可将此ID进行存储,便于用户下次登录时辨识其身份。 |
open_key | 与openid对应的用户key,是验证openid身份的验证密钥 |