uni-app多个前端子项目下,如何配置uni-id关联不同的用户表(一个uni-app子项目一个用户表)
uni-app多个前端子项目下,如何配置uni-id关联不同的用户表(一个uni-app子项目一个用户表)
如题,我想用uni-id来作为项目中的用户体系。但是如果一个项目有多个服务端(比如后台管理系统,多个app界面端),每个服务端的用户表不一样,但是他们之间是有业务关系的,所以只能在一个服务空间,那怎么配置才能实现多个端各自对应某个用户表呢
不能配置多个表,用户都在一个uni-id-users表里,但uni-id自己会通过字段dcloud_appid来区分隔离不同端的用户
那这个appid在哪里配置呢
在uni-app
中,若你希望在不同的前端子项目中关联不同的用户表,你可以利用uni-id
提供的灵活配置和扩展能力来实现。以下是一个简要的代码案例,展示如何在不同子项目中配置uni-id
以关联不同的用户表。
1. 安装和初始化uni-id
首先,确保你已经在项目中安装了uni-id
插件,并在manifest.json
中进行了配置。
// manifest.json
{
"mp-weixin": { // 或其他平台配置
"usingComponents": true,
"permission": {},
"plugins": {
"uni-id": {
"version": "latest", // 或指定版本号
"provider": "uniCloud"
}
}
}
}
2. 配置uni-id服务端
在uniCloud
云函数中,你可以通过修改uni-id
的配置文件来实现不同子项目关联不同用户表。
// cloudfunctions/uni-id-cloudfunctions/uni-id-server/config.js
module.exports = {
database: () => {
const projectId = uniCloud.getFunctionContext().PROJECT_ID; // 获取当前项目ID
let userTable;
switch (projectId) {
case 'projectA':
userTable = 'user_table_A';
break;
case 'projectB':
userTable = 'user_table_B';
break;
// 可以继续添加更多项目配置
default:
userTable = 'default_user_table';
}
return {
content: {
user: userTable,
},
};
},
// 其他配置...
};
3. 前端子项目配置
在前端子项目中,你可以通过初始化uni-id
客户端时传递不同的配置参数,但通常uni-id
的前端配置较为简单,主要是登录、注册等功能的调用。关键在于确保云函数配置正确,前端调用将自动基于云函数中的配置进行处理。
// 在前端子项目中初始化uni-id(示例代码,实际初始化可能有所不同)
uni.cloud.callFunction({
name: 'uni-id-get-token',
data: {
action: 'create', // 注册或登录的动作
// 其他参数如用户名、密码等
},
success: res => {
console.log('登录/注册成功', res);
},
fail: err => {
console.error('登录/注册失败', err);
}
});
总结
通过上述配置,你可以在uni-app
的不同子项目中,通过修改uniCloud
云函数中的uni-id
配置,实现关联不同的用户表。前端调用uni-id
相关功能时,将自动基于云函数的配置进行用户数据的存储和查询。这种方式充分利用了uni-id
和uniCloud
的灵活性,使得多子项目共用一套后端服务的同时,能够灵活处理各自的用户数据。