本文只介绍通用的授权码和密码模式,其他的自行学习
1、Oauth2.0授权模式
1、步骤:客户端申请认证的URI,获取code
ip地址/oauth/authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=CALLBACK_URL&scope=read&state=xxx
参数说明:
response_type:授权类型,必选项,此处的值固定为"code"
client_id:客户端的ID,必选项
redirect_uri:重定向URI,必选项
scope:申请的权限范围,可选项
state:任意值,认证服务器会原样返回,用于抵制CSRF(跨站请求伪造)攻击。
2、服务器回应客户端的URI,我们拿到回调的code
回调地址?code=SplxlOBeZQQYbYS6WxSbIA&state=xxx
参数说明:
code:授权码,必选项。授权码有效期通常设为10分钟,一次性使用。该码与客户端ID、重定向URI以及用户,是一一对应关系。
state:原样返回客户端传的该参数的值。
3、客户端向认证服务器申请令牌
ip地址/oauth/token?client_id=CLIENT_ID&grant_type=authorization_code&code=AUTHORIZATION_CODE&redirect_uri=CALLBACK_URL
参数说明:
client_id:表示客户端ID,必选项。
grant_type:表示使用的授权模式,必选项,此处的值固定为"authorization_code"。
code:表示上一步获得的授权码,必选项。
redirect_uri:表示重定向URI,必选项,且必须与A步骤中的该参数值保持一致。
2 、密码模式
1、客户端发出https请求
ip地址/token?grant_type=password&username=USERNAME&password=PASSWORD&client_id=CLIENT_ID
参数说明:
grant_type:授权类型,此处的值固定为"password",必选项。
username:用户名,必选项。
password:用户的密码,必选项。
scope:权限范围,可选项。