使用 SDK 完成集成开发

最近更新时间:2022-01-24 19:43:46

我的收藏

操作背景

本文档介绍如何将账号风控平台的 SDK 集成到小程序应用中。
说明
推荐下载 小程序 Demo 实现快速开发。

相关示例

SDK 实例化

import { WXAppletClient } from 'ciam-miniapp-sdk';
const authSDK = new WXAppletClient({
clientId: 'your-clientId',
authSourceId: 'your-authSourceId',
userDomain: 'your-userDomain',
agreements: [
{
"name": "用户协议|隐私协议|附加协议|...", // 必传
"url": "https://qq.com", // 必传,最大长度1024
"version": "1.0" // 必传,最大长度10
},
{
"name": "用户协议|隐私协议|附加协议|...", // 必传
"url": "https://baidu.com", // 必传,最大长度1024
"version": "2.0.0" // 必传,最大长度10
}
]
});
初始化参数说明
参数名
类型
是否必填
长度限制
描述
clientId
string
-
管理端添加的小程序应用 ID
authSourceId
string
-
管理端添加的小程序认证源 ID
userDomain
string
-
租户域名(自定义域名获取)
agreements
array[Agreement]
-
如协议流程开启则开发者需要上传协议签署
Agreement 参数说明
参数名
类型
是否必填
长度限制
描述
name
string
100
协议名称,如用户协议、隐私协议、附加协议
url
string
1024
协议链接地址
version
string
10
协议版本号

静默授权登录 loginCode

async bindLoginBySlience() {
try {
await authSDK.loginCode();
}
catch(err) {
console.log('bindLoginBySlience error', err)
}
const userInfo = authSDK.getUser();
if (userInfo) {
...
}
},
参数说明
返回值 类型为 Promise[User|null],User 结构如下:
{
sub: "69bc2a4d-e575-41cf-bbc6-996e0911e2ec",
username: "xxx",
name: "xxx",
gender: "female",
phoneNumber: "+86-13612345678",
email: "xxx@qq.com",
nickname: "xxxx",
wechatUnionId: "xxxxx",
wechatOpenid: "xxxxx"
}

用户信息授权登录 loginUser

注意
该方法需要页面产生点击事件(例如:button 上 bindtap 的回调中)后才可调用。详情参见:获取用户信息
async bindLoginByUserInfo() {
try {
await authSDK.loginUser();
}
catch(err) {
console.log('bindLoginByUserInfo error', err)
}
const userInfo = authSDK.getUser();
if (userInfo) {
...
}
},
参数说明
返回值 类型为 Promise[User|null],User 结构如下:
{
sub: "69bc2a4d-e575-41cf-bbc6-996e0911e2ec",
username: "xxx",
name: "xxx",
gender: "female",
phoneNumber: "+86-13612345678",
email: "xxx@qq.com",
nickname: "xxxx",
wechatUnionId: "xxxxx",
wechatOpenid: "xxxxx"
}

用户手机号授权登录 loginPhone

注意
该方法需要页面产生点击事件(例如:button 上 bindtap 的回调中)后才可调用。详情参见:获取手机号
该方法已更新为官方最新版本的获取手机号接口,开发时请检查开发者工具是否更新以及小程序基础库版本是否在2.21.2以上,暂不支持旧版本调用。
官方文档详情参见:获取手机号
async bindLoginByPhone(e) {

const {code} = e.detail;
if (!code) {
console.error('未获取到code,请检查开发者工具是否更新以及小程序基础库版本是否在2.21.2以上');
return;
}
try {
await authSDK.loginPhone(code);
}
catch(err) {
console.log('bindLoginByPhone error', err)
}

const userInfo = authSDK.getUser();

if (userInfo) {
...
}

},
参数说明
返回值 类型为 Promise[User|null],User 结构如下:
{
sub: "69bc2a4d-e575-41cf-bbc6-996e0911e2ec",
username: "xxx",
name: "xxx",
gender: "female",
phoneNumber: "+86-13612345678",
email: "xxx@qq.com",
nickname: "xxxx",
wechatUnionId: "xxxxx",
wechatOpenid: "xxxxx"
}

获取登录状态 checkLoginState

const isLogin = authSDK.checkLoginState();
if (!isLogin) {
return;
}
参数说明
返回值 类型为 Boolean,返回 true/false。

退出登录 logout

await authSDK.logout();
参数说明
返回值 类型为 Boolean,返回 true/false。