微信小程序云开发实战-答题积分赛小程序

接口联调篇:进入首页主动鉴权静默登录

根本介绍

微信云开发提供了多个根底能力,包含数据库、存储、云函数等。其中,云函数是一段运行在云端的代码,无需治理服务器,在开发工具内编写、一键上传部署即可运行后端代码。
小程序内提供了专门用于云函数调用的 API。开发者能够在云函数内应用 wx-server-sdk 提供的 getWXContext 办法获取到每次调用的上下文(appid、openid 等)。

技术要点

1、wx-server-sdk

云函数中应用 wx-server-sdk 需在对应云函数目录下装置 wx-server-sdk 依赖,在创立云函数时会在云函数目录下默认新建一个 package.json,云函数的运行环境是 Node.js 。

2、getWXContext

在云函数中获取微信调用上下文。

const cloud = require('wx-server-sdk') exports.main = async (event, context) => {  const {    OPENID,//小程序用户 openid,小程序端调用云函数时有    APPID,//小程序 AppID,小程序端调用云函数时有    UNIONID,//小程序用户 unionid,小程序端调用云函数,并且满足 unionid 获取条件时有    ENV,//云函数所在环境的 ID  } = cloud.getWXContext()   return {    OPENID,    APPID,    UNIONID,    ENV,  }}

定义云函数

定义一个云函数,命名为 getOpenId ,性能是实现主动鉴权,获取用户登录态(openid):

const cloud = require('wx-server-sdk') // 初始化 cloudcloud.init({  env: 'test-5613f6abn21'}) /** * 这个示例将经主动鉴权过的小程序用户 openid 返回给小程序端 *  * event 参数蕴含小程序端调用传入的 data *  */exports.main = async (event, context) => {   // 可执行其余自定义逻辑  // console.log 的内容能够在云开发云函数调用日志查看   // 获取 WX Context (微信调用上下文),包含 OPENID、APPID、及 UNIONID(需满足 UNIONID 获取条件)  const wxContext = cloud.getWXContext()  console.log(wxContext)  return {    event,    openid: wxContext.OPENID,    appid: wxContext.APPID,    unionid: wxContext.UNIONID,  }}

部署云函数

在 cloudfunctions/getOpenId 文件夹右击,而后抉择 “上传并部署”。

调用云函数

在进入首页时,进行调用云函数getOpenId,将经主动鉴权过的小程序用户 openid 返回给小程序端。

/**     * 生命周期函数--监听页面加载     */    onLoad(options) {      this.getOpenId();    },    getOpenId() {      wx.cloud.callFunction({        name: 'getOpenId' // 需调用的云函数名      }).then(res => {        // 反对promise形式        console.log(res)      })    },

留神:在开发者工具中上传部署云函数后,咱们在小程序中能够这么调用。

本篇小结

作为小程序创作者,实现主动鉴权获取用户登录态(openid),切实是太常见了。比方网络安全常识答题、交通安全答题、 消防安全常识宣传、 平安生产常识学习、学法普法、五四青年节等答题流动或有奖竞答等利用场景。
云函数是一段运行在云端的代码,如需在云函数中操作数据库、治理云文件、调用其余云函数等操作,可应用官网提供的 npm 包 wx-server-sdk 进行操作。
需特地留神,云函数运行环境即是治理端。