获取当前登录用户
私有云应用由信多帮统一完成登录校验。请求到达应用时,平台会注入经过签名的用户身份;应用通过 SDK 读取,不直接读取 Core Cookie。
浏览器
import { xdbPaaS } from "@xinduobang/xdb-paas-sdk/browser";
const user = await xdbPaaS.auth.getCurrentUser();
if (user.authenticated) {
console.log(user.userName, user.tenantId, user.userId, user.roleId);
}
公开应用允许未登录访问,此时返回:
{
appId: "app_xxx",
authenticated: false,
environment: "production"
}
Node.js 服务端
把框架收到的请求头交给 SDK:
import { xdbPaaS } from "@xinduobang/xdb-paas-sdk/server";
const user = xdbPaaS.auth.getCurrentUser(request.headers);
Python 服务端
from xdb_paas import xdb_paas
user = xdb_paas.auth.get_current_user(request.headers)
本地联调的身份
使用 SDK 0.1.0 或更新版本(安装推荐版本见 SDK 概述)和 xdbapp dev -- <原启动命令> 运行的 Node.js/Python 后端会读取 CLI 当前授权用户的本地开发身份,调用方式与上面的服务端示例一致,无需在本地模仿商家后台登录页。
这个身份用于本地联调,不代表每位访问本地端口的人已经通过信多帮登录。直接运行 npm run dev 不会自动获得该身份;正式用户登录和角色权限应在托管 Preview 验收。浏览器的 getCurrentUser() 使用平台同源登录接口,本地前端如需用户信息,应调用自己的后端。
身份使用规则
- 不要信任浏览器自行提交的
tenantId、userId或roleId; - 不要自行解析或伪造平台身份请求头;
- 不要保存平台注入的身份签名密钥;
- 是否有权查看某项业务数据,仍应由应用自己的业务规则判断;
- 用户被禁用或删除后,平台会撤销其云应用会话和开发凭据。