OAuth是目前广泛应用的开放接入标准,与OAuth1.0相比,OAuth2.0实现起来更加。OAuth的相关原理在互联网上有大量的资料可以查阅。以下是通过OAuth方式接入的说明:
第一步:应用接入申请
向中山市教育信息中心进行应用接入申请获得client_id和client_secret,这两个值是后续进行应用接口调用的关键内容
client_id: lejiaoyun
client_secret: a1a0107555b948ada6348e39376ef52b
第二步:调用OAuth2.0的authorize接口
接口URL:http://202.96.186.112:8001/cas/oauth2.0/authorize
请求方式:GET/POST
调用参数:
参数名称 | 必选 | 类型 | 介绍 |
client_id | true | string | 服务商提供的client_id |
redirect_uri | true | string | 授权后的回调地址,需与注册应用里的回调地址一致 |
response_type | true | string | 此值固定为 code |
实例
http://202.96.186.112:8001/cas/oauth2.0/authorize?client_id=lejiaoyun&response_type=code&redirect_uri=http://localhost:9080/client/oauth2-login
返回值
通过返回的值可以获得code
http://localhost:9080/client/oauth2-login?code=ST-1-CI6pBfnIO1IQtjwyMzNw-113.105.152.174
第三步:授权码交换access_token
接口URL:http://202.96.186.112:8001/cas/oauth2.0/accessToken
请求方式:GET/POST
调用参数:
参数名称 | 必选 | 类型 | 介绍 |
client_id | true | string | 服务商提供的client_id |
client_secret | true | string | 服务商提供的client_secret |
grant_type | true | string | 默认值authorization_code |
redirect_uri | true | string | 授权后的回调地址,需与注册应用里的回调地址一致 |
code | true | string | 第二步请求回来的code |
实例
http://202.96.186.112:8001/cas/oauth2.0/accessToken?client_id=lejiaoyun&client_secret=a1a0107555b948ada6348e39376ef52b&grant_type=authorization_code&redirect_uri=http://localhost:9080/client/oauth2-login code=ST-1-CI6pBfnIO1IQtjwyMzNw-113.105.152.174
返回值
通过返回的值可以获得access_token.
access_token=TGT-1-bVMN764IeAa5ea5MfBgAcIzvvh7DznaQ2QHqV70tMgnOQxIZZs-113.105.152.174&expires=7073
第四步:根据access_token获取用户信息
接口URL:http://202.96.186.112:8001/cas/oauth2.0/profile
请求方式:GET/POST
调用参数:
构建URL包括一个参数
参数名称 | 必选 | 类型 | 介绍 |
access_token | true | string | 第三部返回的access_token值 |
实例
http://202.96.186.112:8001/cas/oauth2.0/profile?access_token=TGT-1-bVMN764IeAa5ea5MfBgAcIzvvh7DznaQ2QHqV70tMgnOQxIZZs-113.105.152.174
返回值
返回用户信息
{"username":"admin"}
至此登陆成功。
============ 欢迎各位老板打赏~ ===========
与本文相关的文章
- · 单点登录SSO的实现原理:asp.net Forms身份验证详解(三)
- · 单点登录SSO的实现原理:附源码(二)
- · 单点登录SSO的实现原理(一)
- · ASP.NET跨域单点登录实现
- · Amazon Linux 2023 安装Docker和Docker Compose
- · nginx http转https, 不带www转带www
- · The instance of entity type ‘Customer’ cannot be tracked because another instance with the same key value for {‘Id’} is already being tracked.
- · .NET8实时更新nginx ip地址归属地
- · 解决.NET Blazor子组件不刷新问题
- · .NET8如何在普通类库中引用 Microsoft.AspNetCore
- · docker定时任务Mysql脚本
- · 解决Linux实例磁盘空间满问题
SSO