imo 开放平台反向登录


中国互联网办公室·imo运营中心

 



目录



1 引言

1.1 编写目的

说明反向登录系统的设计方案,交互流程。

1.2 读者对象

反向登录系统的开发,产品设计人员,以及接入开放平台的第三方相关人员

1.3 文档内容

反向登录系统的设计方案,交互流程。

1.4  系统说明

反向登录:从第三方平台启动imo client并自动登录 

2 业务流程

1. 接入方通过邮件申请imo 反向登录使用权限

2. imo 开放平台通过接入申请,为接入方发放特定appKey(132个字节长的字符串)

3. 第三方平台用户在原平台上点击imo图标,第三方平台通过imo提供的getToken接口获取此次登录imo client的凭证token

4. 第三方平台通过特定方式启动imo client,并将token传给imo client

5. imo client使用token自动登录成功,业务完成

 

交互时序图:

3 接口说明:

1. gettoken接口说明:

接口urlhttp://open.imoffice.com:8000/index.php?app=gettoken

调用方式:http post

参数:cAccount, 一个公司的imo数字帐号,取值,1-9223372036854775807

参数:uAccount, 一个用户的imo帐号,取值,1-9223372036854775807

参数:mobile,   手机号,仅当flag的值为2时,才需要填写此值

参数:password, 用户的imo密码

参数:appKey,  imo发放的接入方标识,取值,32byte字符串

参数:flag,     0-数字帐号登录;1-域名帐号登录;2-绑定的手机号登录

参数:ver,      默认用1

参数:tranid,    由第三方自己生成的事务id,建议使用guid

成功返回:

{“result”:true,”token”:”asdfasdfaasdfasdfasdfasdf”,”ver”:”1”,”tranid”:”123456789”}

失败返回:

{“result”:false,”errorCode”:0,””errorMsg”:”cid error”}

 

errorCode列表:

错误码

错误信息

0

cid error

1

api key error

2

uid error

3

password error

4

miss param

5

miss param of mobile

6

miss account param

7

no authorize

 

4 接入范例

php:

$url = http://open.imoffice.com:8000/index.php?app=gettoken

$process = curl_init($url);

$param =’cAccount=510088&uAccount=admin&’

        .’ password=96e79218965eb72c92a549dd5a330112’

        .’&appKey= 6202393D-CC6B-4301-BE21-A573BBCE6848’

        .’&flag=0&ver=1&tranid=123456789’

        curl_setopt($process, CURLOPT_POSTFIELDS, $param);

        curl_setopt($process, CURLOPT_POST, 1);

        ob_start();

        $return = curl_exec($process);

        $content = ob_get_contents();

        ob_end_clean();

        curl_close($process);

        echo $content;

5 启动客户端范例:

将以下内容另存成html文件进行调试即可

 

 

<html>

<head>

</head>

<body>

<ol>

<li>account: <input type="text" style="width:440px;" id="input_account" /></li>

<li>token: <input type="text" style="width:440px;" id="input_sessionkey" /></li>

<li>appkey: <input type="text" style="width:440px;" id="input_appkey" /></li>

<li>cid: <input type="text" style="width:440px;" id="input_cid" /></li>

<li>uid: <input type="text" style="width:440px;" id="input_uid" /></li>

 

 

<li></li>

<li> simple: <a href="javascript:Runimo();">imo:| -account [account] -login_sessionkey [sessionkey] -login_appkey [appkey] -login_cid [cid] -login_uid [uid]</a></li>

<li>            run: <a href="#" id="a_run"></a></li>

</ol>

<script language=javascript>

function SetInputValue(id, val)

{

var obj = document.getElementById(id);

if (obj)

{

obj.value = val;

}

}

 

function GetInputValue(id)

{

var val = "";

var obj = document.getElementById(id);

if (obj)

{

val = obj.value;

}

return val;

}

 

SetInputValue("input_account", "登录帐号(例:admin@5111111");

SetInputValue("input_ sessionkey", "登录令牌");

SetInputValue("input_appkey", "开放平台AppKey");

SetInputValue("input_cid", "cid、通过登录中心返回。例:43");

SetInputValue("input_uid", "uid、通过登录中心返回。例:234622");

 

function Runimo()

{

var sAccount = GetInputValue("input_account");

var sSessionkey = GetInputValue("input_sessionkey");

var sAppKey = GetInputValue("input_appkey");

var sCid = GetInputValue("input_cid");

var sUid = GetInputValue("input_uid");

 

var sAryRun = new Array("imo:|",

" -account ",

sAccount.toString(),

 

" -login_sessionkey ",

sSessionkey.toString(),

 

" -login_appkey ",

sAppKey.toString(),

 

" -login_cid ",

sCid.toString(),

 

" -login_uid ",

sUid.toString());

 

var sRun = sAryRun.join("");

 

var objRun = document.getElementById("a_run");

if (objRun)

{

objRun.innerHTML = sRun;

objRun.href = sRun;

}

}

</script>

</body>

</html>

 

 

 

 http://www.yxxx.net.cn 西安云翔软件信息科技有限公司

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值