单点登录实现——基于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_idtruestring服务商提供的client_id
redirect_uritruestring授权后的回调地址,需与注册应用里的回调地址一致
response_typetruestring此值固定为 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_idtruestring服务商提供的client_id
client_secrettruestring服务商提供的client_secret
grant_typetruestring默认值authorization_code
redirect_uritruestring授权后的回调地址,需与注册应用里的回调地址一致
codetruestring第二步请求回来的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_tokentruestring第三部返回的access_token值

实例
http://202.96.186.112:8001/cas/oauth2.0/profile?access_token=TGT-1-bVMN764IeAa5ea5MfBgAcIzvvh7DznaQ2QHqV70tMgnOQxIZZs-113.105.152.174 
返回值
返回用户信息 
{"username":"admin"} 
至此登陆成功。

 

http://my.oschina.net/gtwo/blog/716035

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值