OAuth2.0 隐式授权模式( Implicit)接入
隐式授权是为了兼顾到在浏览器中用诸如JavaScript的脚本语言实现的客户端而优化的简化授权代码流程。在隐式授权流程中,不是发给客户端一个授权码,而是直接发给客户端一个访问令牌,而且不会对客户端进行认证。隐式授权提高了一些客户端(比如基于浏览器实现的客户端)的响应能力和效率,因为它减少了获得访问令牌所需的往返次数。
授权码模式交互流程
第一步:获取 access_token
前端 JavaScript 获取 access_token :https://cas_server_url/oauth2.0/authorize?response_type=token&client_id=yourclient&redirect_uri=https://my_server_url/callback
参数列表如下:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
---|---|---|---|---|---|
client_id | 应用审核通过后返回的client_id | query | true | string | |
response_type | 返回类型,填写为token | query | true | string | |
redirect_uri | 回调地址,应用接入第二步中填写的首页地址 | query | true | string |
用户授权后,浏览器重定向redirect_uri指定的网址,并带上令牌,注意,这个跳转地址后面带参数必须是#。
https://my_server_url/callback#token=${access_token}
开发者可在回调地址的接口上实现access_token的解析:
URI uri = new UR("https://my_server_url/callback#token=access_token");
System.out.println(uri.getFragment());
第二步:获取到 access_token 后,可获取当前认证用户信息
根据 accesstoken 获取用户信息:https://cas_server_url/oauth2.0/profile?access_token=xxxxx
返回示例
{
"service" : "service_url",
"attributes" : {
"credentialType" : "LoginCredential"
},
"id" : "admin",
"client_id" : "client"
}
响应参数
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
service | 应用地址 | string | |
attributes | 用户属性值 | integer(int64) | |
id | 用户唯一ID | string | |
client_id | 应用客户端ID | string |
作者:Jeebiz 创建时间:2022-10-23 18:38
最后编辑:Jeebiz 更新时间:2024-05-07 20:29
最后编辑:Jeebiz 更新时间:2024-05-07 20:29