1. 云助手扫码登录开发指南
1.1. 扫码登录Demo体验
在接入之前建议体验一下扫码登录的整体流程及交互过程。保证后面接入工作的顺利进行。
1、在PC上打开如下网址 https://open.fdccloud.com/demo/login/index
2、在PC显示的登录界面中,点击“云助手扫码登录”按钮显示二维码登录界面,或者直接使用主页面中显示的二维码
3、在手机上登录云助手APP,并使用云助手的“扫一扫”功能,扫描步骤2中的二维码
4、在云助手中点击“确认登录”
5、PC页面将自动跳转到登录成功后的页面
云助手APP二维码
1.2. 准备工作
云助手扫码登录是基于OAuth2.0协议标准构建的云助手OAuth2.0授权登录系统。
在接入之前,开发者需要在云助手开放平台注册自己的网站应用(可联系云助手团队申请注册)。
注册完毕后,会获得相应的app_id和app_secret,然后就可以开始接入流程。
1.3. 扫码登录流程
1.3.1. 第一步:请求auth_code(临时授权码)
方式1:跳转链接接入
第三方应用通过在PC端打开以下链接
https://open-backend.fdccloud.com/api/connect/qrlogin?app_id=@app_id&redirect_uri=@redirect_uri
参数说明
参数 | 是否必填 | 说明 |
---|---|---|
app_id | 是 | 应用唯一标识(注册应用时获取) |
redirect_uri | 是 | 云助手扫码登录后的回调地址(请使用urlEncode对链接进行编码) |
返回说明
用户在云助手中允许授权登录后,将会重定向到redirect_uri的网址上,并且带上auth_code参数
redirect_uri?auth_code=@auth_code
方式2:JS SDK接入(可直接在自己的页面嵌入登录二维码)
Step1:引入js
<script src="https://open.fdccloud.com/js/yzsLogin.js"></script>
Step2:在需要使用云助手登录的地方实例化以下JS对象
var yzsLogin = new YzsLogin(
{
id:"login_container",
app_id:"10000",
height:260,
width:260
}
);
参数说明
参数 | 是否必填 | 说明 |
---|---|---|
app_id | 是 | 应用唯一标识(注册应用时获取) |
id | 是 | 第三页面显示二维码的容器id |
width | 是 | 第三页面显示二维码的宽度 |
height | 是 | 第三页面显示二维码的高度 |
监听扫码事件
var hanndleMessage = function (event) {
var origin = event.origin;
if(event.data && typeof(event.data.from) != 'undefined'&&event.data.from=='scan_login'){
console.log("event.data: " + JSON.stringify(event.data));
// 102 二维码被扫描
// 103 用户扫码但是取消登录)
// 104 二维码过期(5分钟)
// 1 用户在云助手中扫码并确认登录,此时可以拿到临时授权码了
if(event.data.code == 102){
console.log('扫描成功,请在云助手中点击确认');
}else if(event.data.code == 103){
console.log('您已取消此次登录');
}else if(event.data.code == 104){
console.log('您的二维码已失效,请点击刷新');
}else if(event.data.code == 1){
console.log('用户在云助手中扫码并确认登录,此时可以拿到临时授权码了');
var auth_code = event.data.auth_code;
}
}
};
if (typeof window.addEventListener != 'undefined') {
window.addEventListener('message', hanndleMessage, false);
} else if (typeof window.attachEvent != 'undefined') {
window.attachEvent('onmessage', hanndleMessage);
}
1.3.2. 第二步:通过auth_code获取access_token
通过auth_code获取access_token
参数说明
参数 | 是否必填 | 说明 |
---|---|---|
app_id | 是 | 应用唯一标识(注册应用时获取) |
app_secret | 是 | 应用秘钥(注册应用时获取) |
auth_code | 是 | 填写第一步获取的auth_code参数(有效期10分钟) |
返回说明
{
"success": 1,
"data": {
"code": 1,
"access_token":"@access_token"
}
}
1.3.3. 第三步:通过access_token调用接口
获取access_token后,进行接口调用,有以下前提
- access_token有效且未超时;(有效期2小时)
获取云助手用户信息
https://open-backend.fdccloud.com/api/connect/get-user-info?access_token=@access_token
参数说明
参数 | 是否必填 | 说明 |
---|---|---|
access_token | 是 | 填写第二步获取的access_token参数(请使用urlEncode对access_token进行编码) |
返回说明
{
"success": 1,
"data": {
"code": 1,
"message": "正常",
"user_info": {
"wzs_user_id": "wzs5996a0c342c36325963632",
"open_id": "mysoft59bb4264a71b9281261867",
"user_code": "meiy02",
"user_name": "梅义",
"avatar": "https://a.b.c/d.png",
"tenant_id": "my56a9c966df069",
"tenant_code": "mysoft_ci",
"tenant_name": "明源云CI-EDIT244",
"customer_id": "1212312312",
"customer_name": "明源集团",
"address_type": "erp",
"erp_ver": "352"
}
}
}
返回参数说明
参数 | 说明 |
---|---|
code | 返回码 |
message | 错误信息 |
wzs_user_id | 云助手用户id |
open_id | 云助手open_id |
user_code | 用户code |
user_name | 用户名称 |
avatar | 用户头像 |
tenant_id | 租户id |
tenant_code | 租户code |
tenant_name | 租户名称 |
customer_id | 客户id |
customer_name | 客户名称 |
address_type | 主通讯录类型(erp或者ad) |
erp_ver | 当主通讯录时erp时,会返回erp_ver,如果存在多个erp_ver,以逗号分隔 |