IMO 开放平台单点登录
中国互联网办公室·imo运营中心
目录
1 引言 3
1.1 编写目的 3
1.2 读者对象 3
1.3 文档内容 3
1.4 系统说明 3
2 业务流程 4
3 接口说明: 6
4 接入范例 7
1 引言
1.1 编写目的
说明单点登录系统的设计方案,交互流程。
1.2 读者对象
单点登录系统的开发,产品设计人员,以及接入开放平台的第三方相关人员
1.3 文档内容
单点登录系统的设计方案,交互流程。
1.4 系统说明
单点登录:登录IMOClient后,可以直接进入第三方平台,不需要再次在三方平台进行登录。
2 业务流程
1. 接入方在imo 开放平台申请第三方接入权限,并提交自己的SSOURL
2. Imo 开放平台通过接入申请,为接入方发放特定API_KEY(1个32个字节长的字符串)
3. Imo为接入方在imoclient上将之前提交的SSOURL绑定到<应用中心>的APP图标上(自动)
4. 用户点击APP图标,imoclient开启web页面,url为:ssourl?cid=xxxx&uid=xxxx&key=xxxxxxxx
5. 接入方接收到ssourl的请求,通过imoserver提供的imoAuth接口(httprestful)对cid,uid合法性进行验证。
6. appcheck接口返回认证成功,接入方确认此uid为合法imo账号,可以开始绑定流程,或直接访问接入方内部系统。
3 接口说明:
1. Imoclient调用ssourl说明:
调用方式:http get
参数:cid, 一个公司的唯一数字标识,取值,1-9223372036854775807
参数:uid,一个用户的唯一数字标识,取值,1-9223372036854775807
Key: 256byte 字符串
Eg:http://appoa.oa.com/ssourl? cid=xxxx&uid=xxxx&key=xxxxxxxx
(http://appoa.oa.com/ssourl为第三方url )
2. appcheck接口说明:
调用方式:http post
参数:cid, 一个公司的唯一数字标识,取值,1-9223372036854775807
参数:uid,一个用户的唯一数字标识,取值,1-9223372036854775807
参数:Key, imo生成的一个用户的签名,60秒后失效,取值,256byte 字符串
(参数来自接口1)发送前需要做URLENCODE
返回:{“result”:”success”,”info”:”ok”}
EG:http://open.imoffice.com:8000/?app=appcheck&cid=xxxx&uid=xxxx&key=xxxxxxxxx
4 接入范例
http://test.oplatform.imoffice.cn/mis/view.php
验证接口demo:
PHP版:
$key = urlencode($key);
$url="http:// test.oplatform.imoffice.cn /?app=appcheck&cid={$cid}&uid={$uid}&key={$key}";
$result = curl($url);
function curl($url, $timeout = 10) {
$ch = curl_init();
$tt = curl_errno($ch);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
Java版:
public String curl(String url,String timeout ) throws Exception{
String cid = getParameter("cid");
String uid= getParameter("uid");
String key = getParameter("key");
HttpClient client = new DefaultHttpClient();
client.getParams().setParameter("http.socket.timeout", new Integer(timeout));
client.getParams().setParameter("http.protocol.content-charset", "UTF-8");
HttpPost post = new HttpPost(url);
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("cid", cid));
params.add(new BasicNameValuePair("uid", uid));
params.add(new BasicNameValuePair("key", key));
post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
HttpResponse response = client.execute(post);
String result = EntityUtils.toString(response.getEntity());
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
http://www.yxxx.net.cn 西安云翔软件信息科技有限公司
IMO 开放平台单点登录相关推荐
- 腾讯微博开放平台 android登录界面显示为pc登录界面 解决方案
腾讯微博开放平台的登录授权一直没有官方的sdk,下载的sdk开始正常使用无问题,但是某天,我们用htc g10 android2.3(有刷过机)使用腾讯微博账号登录,发现登录界面显示为pc上的授权页 ...
- paypal中授权返回_微信开放平台授权登录流程详解
最近在工作中用到了一些微信开放平台授权第三方登录,来获取用户基本信息的操作.看了一下微信给出的官方文档,写的已经很详细了,这里按照自己的步骤进行了一下总结,并附带了一些示例,方便大家理解. 微信公众号 ...
- 抖音开放平台授权登录PHP,5分钟快速接入抖音开放平台,获取我的抖音粉丝列表,还有更多实用API...
注:图片来自抖音开放平台 极速体验 即便你还没有抖音开放平台的账号,也可以极速体验一下抖音授权和接口调用的效果. 进入果创云开放平台-会员-抖音用户-抖音扫码授权. 链接:http://open.ye ...
- 微信开放平台授权登录流程详解
原创 Dr Hydra 码农参上 2020-09-13 11:00 收录于合集 #微信开发技术3个 #java实战34个 最近在工作中用到了一些微信开放平台授权第三方登录,来获取用户基本信息的操作.看 ...
- 抖音开放平台授权登录PHP,抖音向第三方平台开放“一键发布”功能 大疆、网易游戏等已接入...
9月6日,据记者了解,抖音已经开放了第三方App的内容分享至抖音的功能,这意味着用户在第三方平台发布的内容可以直接同步至抖音. 据抖音方面介绍,分享功能在2019年3月开始上线,目前除各种视频工具类应 ...
- 微信开放平台授权登录与微信公众号授权登录区别
微信开放平台的scope 类型为 snsapi_login 微信公众号的scope 类型为 snsapi_base 和 snsapi_userinfo
- 关于新浪微博开放平台微博登录授权后再次登录会自动登录问题的解决办法
ios和android版本sso登陆和Oauth2.0登录跳转到新浪登录页面后,如果客户端里只有一个帐号,那么就会默认地选择这个帐号授权了,没给用户选择,也无法添加帐号.这种情况只能先去新浪的客户端里 ...
- QQ开放平台QQ登录PHP代码
//--------------------------- <?php class qzone { var $appid = "appid";//换成您的 var $app ...
- 通达OA系统对接 单点登录平台使用和开发手册
企业开放平台使用说明书 企业开放平台用于整合第三方系统,具有单点登录.统一事务代办的功能, 以下操作说明以第三方系统为OA系统简单介绍. 单点登录平台 Step 1 菜单构成 通达OA2017版安装好 ...
- 微信开放平台开发(2) 网站应用微信登录
关键字:微信公众平台 微信开放平台 微信登录 微信扫码登录 使用微信账号登录网站 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-qrlogi ...
最新文章
- 什么是php model类,thinkphp的自定义model类有什么作用?
- 《C++primer》第一章--开始
- NewPhy.-揭秘优势种dominant species
- 简述进程的启动、终止的方式以及如何进行进程的查看。
- 网络管理员所需要的知识结构和素质
- ML之SL:监督学习(Supervised Learning)的简介、应用、经典案例之详细攻略
- 算法 | 尺度不变特征变换匹配算法 Scale Invariant Feature Transform (SIFT)
- 纪念第一个正式的java程序
- 为什么0.1无法被二进制小数精确表示?
- 指尖初体验之主屏幕操作
- ASP.NET 2.0中的跨页面提交
- VS中项目的循环引用的问题
- 排序算法系列之归并排序
- static关键字_乐字节Java|this关键字、static关键字、block块
- Spring源码剖析-Spring核心类认识(一)
- 抖音app用户体验分析
- jQuery 选择城市,显示对应的即时时区时间
- 九章量子计算机 知乎,量子计算机《九章》问世 知乎微博消息: 北京时间 12 月 4 日凌晨 3 点,一篇重要文章以 First Releas... - 雪球...
- SQL基础(一):安装MySQL以及一些简单操作
- 为什么很多人公司都在招测试开发?
热门文章
- 【斗地主代码分析】(2)-斗地主逻辑-客户端与服务端
- 踩坑记6 vue3、生命周期钩子、vue-devtools beta
- python seo 外链_用python实现超级外链发布系统
- esp32 支持 sd卡 micropython 文件系统_ESP32/ESP8266 MicroPython教程:将文件上传到文件系统...
- ant linux版本下载安装,linux下ant的安装
- linux audit原理,Wauzh原理简析及audit规则风险评估
- 云服务器入门篇:搭建云服务器Java web环境(Ubuntu Server 16.04.1 LTS 64位)
- whois域名查询工具在线使用
- 华硕x450jn拆机_自己动手丨 轻松搞定华硕X450JN笔记本 内存扩展
- kernel日志时间转换python脚本(MTK)