基于密码模式,你能说明生成 Token 需要哪些具体的开发步骤吗?
4种授权模式:
-
密码模式(resource owner password credentials)
-
客户端模式(client_credenruals)
-
授权码模式(authorization_code)
-
简化模式(implicit)
密码模式(resource owner password credentials):
在这种模式中,用户必须把自己的密码给客户端,但是客户端不得储存密码。这通常用在用户对客户端高度信任的情况下,比如客户端是操作系统的一部分,或者由一个著名公司出品。而认证服务器只有在其他授权模式无法执行的情况下,才能考虑使用这种模式。
(A)用户向客户端传参username、password获取token。
(B)授权服务器校验客户端提交的的凭证(Credential)。
- 凭证(Credential)以下是必需的POST参数:
grant_type(表示授权类型,此处的值固定为”password”,必选项)
scope(表示权限范围,如webclient,mobileclient可选项)
client_id(注册时返回的值)
client_secret(注册时返回的值)
username(表示用户名,编码格式为UTF-8,必选项)
password(表示用户的密码,编码格式为UTF-8,必选项)
(C)授权服务器确认无误后,向客户端返回application/json包含以下内容的响应acceptToken。
- 密码模式resource owner password credentials的acceptToken
access_token(用于用户访问API的访问令牌,用于资源访问
Key(Value)
- 授权码模式authorization_code的acceptToken
响应参数如下:
access_token(用于用户访问API的访问令牌,用于资源访问)
refresh_token(当访问令牌失效,使用这个令牌重新获取访问令牌)
token_type(令牌类型,这里是Bearer基于HTTP认证)
expire_in(过期时间)
如果访问令牌仅具有短期生命周期,那么客户端必须有一种方法来刷新访问令牌,这一点很重要。
(D)return login success