文档章节

单点登录实现

Gtwo
 Gtwo
发布于 2016/07/22 10:42
字数 515
阅读 1618
收藏 17

单点登录实现——基于OAuth2.0协议的接入方案


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"} 
至此登陆成功。

本文转载自:

共有 人打赏支持
上一篇: Redis常用指令
下一篇: 谈谈redis的使用
Gtwo
粉丝 1
博文 42
码字总数 35045
作品 0
中山
程序员
私信 提问
怎么跨域实现单点登录?

在学习单点登录过程中了解到,cas通过cookie存储当前站点登录信息的ticket,只有同样顶级域名的其他服务才能访问到该ticket并通过认证服务器实现单点登录。 但是SAML2.0 好像是说可以实现跨域...

散步留馨
2017/10/24
160
2
单点登录与集群

需求描述: 工作类型: Web应用开发 技能要求: Java 预计完成时间: 2016-06-30 驻场要求: 需定期到[广东省-广州市]驻场 要求提供发票: 增值税专用发票 需求详情: 1) 现状 a) 目前外部网...

13078878620
2016/05/18
5
0
分布式系统框架Spring+Redis+SSO

课程介绍 该课程以实战方式实现一套经典的分布式系统架构; 讲解如何进行系统拆分架构: 1、传统ssm框架搭建、 2、独立restful服务工程搭建、 3、服务接口底层访问、 4、redis实现业务缓存、...

小红牛
2018/07/18
0
0
CAS SSO单点登录ajax请求拦截,白名单循环重定向。

[背景] 公司有多个产品现需要实现多个产品之间的单点登录,现在采用的开源项目cas做的单点登录。 [需求] 现在阶段存在一下问题: 1、通过白名单实现URL过滤,过滤过程中会出现循环重定向的问...

allen_2288
2016/06/02
40
5
FineReport和泛微OA(Ecology)的单点登录集成方案

最近出现了很多关于帆软报表和泛微OA的集成问题,均出现在“单点登录”上。直接也有相关的文章介绍一些FineReport和泛微集成的背景、价值等,以及FineReport和OA的深度集成的方案,但是并没有...

雄霸天下啦
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于360插件化Replugin Activity动态修改父类的字节码操作

近期在接入360插件化方案Replugin时,发现出现崩溃情况。 大概崩溃内容如下: aused by: java.lang.ClassNotFoundException: Didn't find class "x.x.x.xActivity" on path: 我自己在插件代码......

Gemini-Lin
58分钟前
0
0
mybatis缓存的装饰器模式

一般在开发生产中,对于新需求的实现,我们一般会有两种方式来处理,一种是直接修改已有组件的代码,另一种是使用继承方式。第一种显然会破坏已有组件的稳定性。第二种,会导致大量子类的出现...

算法之名
昨天
17
0
单元测试

右键方法 Go To --> Test,简便快速生成测试方法。 相关注解 @RunWith(SpringRunner.class) 表示要在测试环境中跑,底层实现是 jUnit测试工具。 @SpringBootTest 表示启动整个 Spring工程 @A...

imbiao
昨天
4
0
欧拉公式

欧拉公式表达式 欧拉公式的几何意 cosθ + j sinθ 是个复数,实数部分也就是实部为 cosθ ,虚数部分也就是虚部为 j sinθ ,对应复平面单位圆上的一个点。 根据欧拉公式和这个点可以用 复指...

sharelocked
昨天
5
0
burpsuite无法抓取https数据包

1.将浏览器和burpsuite的代理都设置好 2.在浏览器地址栏输入: http://burp 3.下载下面的证书,并将证书导入浏览器 cacert.der

Frost729
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部