跳到主要内容

全代码接入微搭用户管理

针对在自定义开发的应用中,微搭提供了相应的 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

类型说明
isProdboolean当前是否处于正式发布模式
appIdstring低码应用 ID
envIdstring云开发环境 ID
endpointTypestring确定调用链路, tcb-api 或 空

出参

类型说明
appcloudbase.app.App详情参考
authcloudbase.auth.App详情参考

4 用户管理相关方法

该部分基本可以参考微搭客户端权限 API,通过 wedaClient.auth 使用

4.1 wedaClient.auth.currentUser

功能描述

用户信息引用,可参考 $w.auth.currentUser

4.2 wedaClient.auth.getAccessToken

功能描述

获取当前用户的 accessToken, 如果当前用户未登录, 则会返回空

入参

出参

类型说明
accessTokenstring用户当前的 token 信息
envstringsdk 当前配置的环境 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 端使用时的入参,目前支持手机号,邮箱,用户名密码登录。

类型说明
usernamestring用户手机号,邮箱或自定义用户名
passwordstring用户密码 ,password 与 verification_token 必须任选其一
verification_tokenstring验证码 token ,password 与 verification_token 必须任选其一

IMpSiginParams

在小程序端使用时的入参,目前支持手机号 code 登录。

类型说明
encryptedPhoneCodestring手机号动态令牌。获取方式参考微信文档

出参

示例

await wedaClient.auth.signIn({
username: "用户名",
password: "密码",
});

4.6 wedaClient.auth.modifyCurrentUser

wedaClient.auth.modifyCurrentUser(params: IModifyCurrentUser): Promise<CurrentUserInfo>

功能描述

修改用户信息

入参

IModifyCurrentUser

类型说明
userNamestring用户名
nickNamestring用户昵称
avatarUrlstring头像
descriptionstring描述

出参

与 wedaClient.auth.currentUser 一致

示例

const userInfo = await wedaClient.auth.modifyCurrentUser({
userName: "test",
});

4.7 wedaClient.auth.openIdLoginInWxApp

wedaClient.auth.openIdLoginInWxApp(): Promise<boolean>

功能描述

openId 静默登录

入参

出参

类型说明
resultboolean是否登录成功

示例

await wedaClient.auth.openIdLoginInWxApp();
console.log(wedaClient.auth.currentUser);