获取用户信息

最近更新时间:2019-05-09 16:48:22

当从客户端调用云函数时,如在小程序中或者web端使用微信登录授权,云函数的传入参数中会被注入用户的 openid,开发者无需校验 openid 的正确性,可以直接使用该 openid。与 openid 一起注入云函数的还有小程序或者对应微信开放(或公众)平台所注册应用的 appid

小程序端发起的云函数调用

从小程序端调用云函数时,开发者可以在云函数内使用 wx-server-sdk 提供的 getWXContext 方法获取到每次调用的上下文(appidopenid 等),无需维护复杂的鉴权机制,即可获取天然可信任的用户登录态(openid)。

  1. 您可以写一个云函数进行测试。

    // index.js
    const cloud = require('wx-server-sdk')
    exports.main = (event, context) => {
    // 这里获取到的 openId、 appId 和 unionId 是可信的,注意 unionId 仅在满足 unionId 获取条件时返回
    const { OPENID, APPID, UNIONID } = cloud.getWXContext()
    
    return {
     OPENID,
     APPID,
     UNIONID,
    }
    }
  2. 假设云函数命名为 test,上传并部署该云函数后,可在小程序中测试调用。

    wx.cloud.callFunction({
    name: 'test',
    complete: res => {
     console.log('callFunction test result: ', res)
    }
    })
  3. 您会在调试器看到输出的 res 为如下结构的对象。

    {
    "APPID": "xxx",
    "OPENID": "yyy",
    "UNIONID": "zzz" // 仅在满足 unionId 获取条件时返回
    }

Web 端发起的云函数调用

从 Web 端发起云函数调用时,可以使用 CloudBase 官方服务端 SDK ,tcb-admin-node获取终端用户的身份信息。示例代码如下:

//引用SDK
const tcb = require('tcb-admin-node');
//初始化SDK
tcb.init();
//获取用户信息
const userInfo = await tcb.auth().getUserInfo();