# 登录鉴权

# getUserInfo

# 1. 接口描述

接口功能:获取用户信息

接口声明:getUserInfo(): Object

注意

此接口将会在下个主版本废弃,推荐使用 Auth.getEndUserInfo()

# 2. 输入参数

# 3. 返回结果

字段 类型 必填 说明
openId string 微信 openId,非微信授权登录则空
appId string 微信 appId,非微信授权登录则空
uid string 用户唯一 ID
customUserId string 开发者自定义的用户唯一 id,非自定义登录则空

# 4. 示例代码

const tcb = require("@cloudbase/node-sdk");
const app = tcb.init({ env: "xxx" });
const auth = app.auth();

exports.main = async (event, context) => {
  const {
    openId, //微信openId,非微信授权登录则空
    appId, //微信appId,非微信授权登录则空
    uid, //用户唯一ID
    customUserId //开发者自定义的用户唯一id,非自定义登录则空
  } = auth.getUserInfo();
  console.log(openId, appId, uid, customUserId);
};

# getEndUserInfo

# 1. 接口描述

接口功能:获取用户信息

接口声明:getEndUserInfo(uid?: string, opts?: Object): Object

提示

自 Node SDK 2.2.5 版本起支持此接口

# 2. 输入参数

字段 类型 必填 说明
uid string 云开发用户身份标识。如果不传入,则从环境变量中读取用户信息。
opts Object 自定义请求配置

# 3. 返回结果

字段 类型 必填 说明
userInfo EndUserInfo 云开发用户信息
requestId string 请求唯一标识

EndUserInfo:

字段 类型 说明
openId string 微信 openId,非微信授权登录则空
appId string 微信 appId,非微信授权登录则空
uid string 用户唯一 ID
customUserId string 开发者自定义的用户唯一 id,非自定义登录则空
envName string 云开发环境名
nickName string 用户昵称
email string 用户登录邮箱
username string 用户登录用户名
hasPassword boolean 用户是否设置密码
gender "MALE" | "FEMALE" | "UNKNOWN" 云开发登录用户名
country string 地理位置(国家)
province string 地理位置(省份)
city string 地理位置(城市)
avatarUrl string 用户头像地址
qqMiniOpenId string 用户绑定的 qq 小程序标识

# 4. 示例代码

const tcb = require("@cloudbase/node-sdk");
const app = tcb.init({ env: "xxx" });
const auth = app.auth();

exports.main = async (event, context) => {
  try {
    const { userInfo } = await auth.getEndUserInfo("your user uuid");
    console.log(userInfo);
  } catch (error) {
    console.log(error.message);
  }
};

# getClientIP

# 1. 接口描述

接口功能:获取客户端 IP

接口声明:getClientIP(): string

# 2. 输入参数

# 3. 返回结果

字段 类型 必填 说明
- string 客户端 IP

# 4. 示例代码

const tcb = require("@cloudbase/node-sdk");
const app = tcb.init({ env: "xxx" });
const auth = app.auth();

exports.main = async (event, context) => {
  const ip = auth.getClientIP(); // string
  console.log(ip);
};

# createTicket

# 1. 接口描述

接口功能:获取自定义登录的登录凭据 ticket

接口声明:createTicket(customUserId, option): string

⚠️ 从 2.1.0 版本起,createTicket 方法中会校验 私钥中 env 值和 init 指定 env 值是否一致,不一致则直接报错,为不兼容变更

# 2. 输入参数

字段 类型 必填 说明
customUserId string 开发者自定义的用户唯一 id
option string 微信 appId,非微信授权登录则空

# option

字段 类型 必填 说明
refresh number access_token 的刷新时间
expire number access_token 的过期时间

# 3. 返回结果

字段 类型 必填 说明
- string 自定义登录凭据 ticket

# 4. 示例代码

const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({
  env: 'xxx',
  credentials: {
    private_key_id: 'xxxxx', // 私钥文件中获取
    private_key: 'xxxxxxx' // 私钥文件中获取
    env_id: 'xxx' // 私钥文件中获取
  }
})

const auth = app.auth()

const customUserId = '123456' // 开发者自定义的用户唯一id

const ticket = auth.createTicket(customUserId, {
  refresh: 3600 * 1000 // access_token的刷新时间
})

console.log(ticket)