# 自动获取 userInfo

首先需要先介绍下两个框架内置的过滤器

  • kh 过滤器 : kh 目录下的云函数需要检测用户是否已登录。
  • pub过滤器 : pub目录下的云函数所有人都可以直接访问。
  • kh目录下的函数默认会自动获取 userInfo(当前登录用户信息)

如果此云函数不需要用户信息,可以在前端多传一个参数need_user_info:false 可以减少一次数据库查询(加快响应速度)(快 100ms 左右)

此时 依然会检测 token 是否有效,故 uid (当前登录用户 ID)仍然可以获取到(因为 uid 是从 token 中解密获取,而非查数据库)

vk.callFunction({
  url: 'client/user/kh/findMyOrderList',
  data: {
    need_user_info: false, // 如果云函数用不到 `userInfo`,则传false可以加快接口相应速度
    // 以下是你自己的参数
    a: 1,
    b: 2,
  },
  success: (data) => {},
});
1
2
3
4
5
6
7
8
9
10

pub目录下的云函数默认不会获取 userInfo(当前登录用户信息),且不会获取 uid(因为 pub 不解析 token)

如果pub目录下的云函数想要获取 userInfo,则可以在前端多传一个参数need_user_info:true

此处如果用户 token 有效,就可以获取到 userInfo,若 token 无效,则取不到userInfo

vk.callFunction({
  url: 'client/user/pub/findGoodsInfo',
  data: {
    need_user_info: true, // 如果pub下的云函数需要用到 `userInfo`,则传true,
    // 以下是你自己的参数
    a: 1,
    b: 2,
  },
  success: (data) => {},
});
1
2
3
4
5
6
7
8
9
10