0
点赞
收藏
分享

微信扫一扫

答题积分小程序云开发实战-接口联调篇:进入首页自动鉴权静默登录

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

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

基本介绍

微信云开发提供了多个基础能力,包括数据库、存储、云函数等。其中,云函数是一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。

小程序内提供了专门用于云函数调用的 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')
 
// 初始化 cloud
cloud.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)
      })
    },

注意:在开发者工具中上传部署云函数后,我们在小程序中可以这么调用。

答题积分小程序云开发实战-接口联调篇:进入首页自动鉴权静默登录_用户登录_02


本篇小结

作为小程序创作者,实现自动鉴权获取用户登录态(openid),实在是太常见了。比如网络安全知识答题、交通安全答题、 消防安全知识宣传、 安全生产知识学习、学法普法、五四青年节等答题活动或有奖竞答等应用场景。

云函数是一段运行在云端的代码,如需在云函数中操作数据库、管理云文件、调用其他云函数等操作,可使用官方提供的 npm 包 wx-server-sdk 进行操作。

需特别注意,云函数运行环境即是管理端。

答题积分小程序云开发实战-接口联调篇:进入首页自动鉴权静默登录_微信小程序_03

举报

相关推荐

0 条评论