全代码接入微搭用户管理
针对在自定义开发的应用中,微搭提供了相应的 SDK 让开发者对接微搭的用户管理体系,可以方便的管理用户信息
1. 微搭用户管理接入准备
接入前,需要开发者安装相应的 npm 包,具体如下:
{
...,
"dependencies": {
"@cloudbase/js-sdk": "2.5.6-beta.1",
"@cloudbase/oauth": "0.1.1-alpha.5",
"@cloudbase/weda-client": "1.0.24",
"@cloudbase/weda-cloud-sdk": "1.0.57",
"mobx": "^5.15.4",
"lodash.get": "^4.4.2",
"lodash.set": "^4.3.2",
"miniprogram-gesture": "^1.0.6",
"miniprogram-api-promise": "^1.0.4"
},
...
}
2. 初始化 SDK
在使用前,需要对 SDK 进行初始化,这里填入对应的环境参数,其中 endpointType 的取值由应用的开发模式决定
// sdk 初始化
import * as wedaClient from "@cloudbase/weda-client";
wedaClient.app.init({
/** 当前是否处于正式发布模式 */
isProd: true,
/** 低码应用ID */
appId: "app-xxx",
/** 云开发环境ID */
envId: "lowcode-xxx",
/** 确定调用链路, tcb-api 或 不传 */
endpointType: "tcb-api",
});
3. 应用相关方法
主要用于 SDK 的初始化,通过 wedaClient.app 使用
3.1 wedaClient.app.init
wedaClient.app.init(params: IMpInitParams): Promise<{ app: cloudbase.app.App; auth: cloudbase.auth.App }>
功能描述
初始化应用
入参
IMpInitParams
值 | 类型 | 说明 |
---|---|---|
isProd | boolean | 当前是否处于正式发布模式 |
appId | string | 低码应用 ID |
envId | string | 云开发环境 ID |
endpointType | string | 确定调用链路, tcb-api 或 空 |
出参
值 | 类型 | 说明 |
---|---|---|
app | cloudbase.app.App | 详情参考 |
auth | cloudbase.auth.App | 详情参考 |
4 用户管理相关方法
该部分基本可以参考微搭客户端权限 API,通过 wedaClient.auth 使用
4.1 wedaClient.auth.currentUser
功能描述
用户信息引用,可参考 $w.auth.currentUser
4.2 wedaClient.auth.getAccessToken
功能描述
获取当前用户的 accessToken, 如果当前用户未登录, 则会返回空
入参
无
出参
值 | 类型 | 说明 |
---|---|---|
accessToken | string | 用户当前的 token 信息 |
env | string | sdk 当前配置的环境 ID |
示例
const token = await wedaClient.auth.getAccessToken();
console.log(token?.accessToken);
4.3 wedaClient.auth.getUserInfo
功能描述
获取当前登录用户信息,可参考 $w.auth.getUserInfo
4.4 wedaClient.auth.loginScope
功能描述
获取用户登录权限范围,可参考 $w.auth.loginScope
4.5 wedaClient.auth.signIn
wedaClient.app.signIn(params: IWebSiginParams | IMpSiginParams): Promise<void>
功能描述
用户登录。目前支持两种:
(1)web 登录:支持用户名密码
(2)小程序:支持手机号登录
入参
IWebSiginParams
在 Web 端使用时的入参,目前支持手机号,邮箱,用户名密码登录。
值 | 类型 | 说明 |
---|---|---|
username | string | 用户手机号,邮箱或自定义用户名 |
password | string | 用户密码 ,password 与 verification_token 必须任选其一 |
verification_token | string | 验证码 token ,password 与 verification_token 必须任选其一 |
IMpSiginParams
在小程序端使用时的入参,目前支持手机号 code 登录。
值 | 类型 | 说明 |
---|---|---|
encryptedPhoneCode | string | 手机号动态令牌。获取方式参考微信文档 |
出参
无
示例
await wedaClient.auth.signIn({
username: "用户名",
password: "密码",
});
4.6 wedaClient.auth.modifyCurrentUser
wedaClient.auth.modifyCurrentUser(params: IModifyCurrentUser): Promise<CurrentUserInfo>
功能描述
修改用户信息
入参
IModifyCurrentUser
值 | 类型 | 说明 |
---|---|---|
userName | string | 用户名 |
nickName | string | 用户昵称 |
avatarUrl | string | 头像 |
description | string | 描述 |
出参
与 wedaClient.auth.currentUser 一致
示例
const userInfo = await wedaClient.auth.modifyCurrentUser({
userName: "test",
});
4.7 wedaClient.auth.openIdLoginInWxApp
wedaClient.auth.openIdLoginInWxApp(): Promise<boolean>
功能描述
openId 静默登录
入参
无
出参
值 | 类型 | 说明 |
---|---|---|
result | boolean | 是否登录成功 |
示例
await wedaClient.auth.openIdLoginInWxApp();
console.log(wedaClient.auth.currentUser);