`
m635674608
  • 浏览: 4932436 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

单点登录实现——基于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"} 
至此登陆成功。

 

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

分享到:
评论
1 楼 liaozhaijk 2018-05-17  
    

相关推荐

Global site tag (gtag.js) - Google Analytics