资料库 API列表
联系我们
注册 登录

使用 Password Grant 方式获取 Access Token

使用场景

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

在这种模式中,用户必须把自己的密码给客户端,但是客户端不得储存密码。这通常用在用户对客户端高度信任的情况下,比如客户端是操作系统的一部分,或者由一个著名公司出品。而认证服务器只有在其他授权模式无法执行的情况下,才能考虑使用这种模式。

官方流程示意图:

oauth2_password.png

请求步骤

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

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

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

请求数据包格式:

  • 请求地址:https://open.cnipr.com/oauth/json/user/login
  • 请求方法: POST
  • 请求参数:
    参数字段 是否必须 说明
    user_account 必须 用户登录名
    user_password 必须 用户登陆密码
    client_id 必须 用户登录后,接入应用成功后,分配的client_id。
    client_secret 必须 用户登录后,接入应用成功后,分配的client_secret。
    return_refresh_token 可选 是否返回刷新token,1表示返回,其他值表示不返回,默认不返回
    grant_type 必须 授权类型,此值固定为"password"

响应数据包格式:

  • 如果授权成功,授权服务器会直接返回json格式授权信息:
    {
        "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身份的验证密钥
  • 错误码说明:
    接口调用有错误时,会返回code和msg字段,以Json格式返回。具体参见 OAuth2返回值码说明
有Server端的应用可以通过使用Authorization Code获取Access Token,请参考Authorization Code授权