密码模式(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身份的验证密钥 |