微信小程序开通云开发并利用云函数获取Openid

参考文章:借助小程序云开发获取小程序用户openid

需求:

  1. 没有服务器开发,如何实现微信小程序端的登录功能?
  2. 旧项目转云开发并使用云函数?

以上是我目前项目的背景。

小程序端的登录流程,官网介绍的很清楚了

  1. 登录流程
  2. wx.login 接口

主要就是通过 wx.login 去获取code,然后拿code去服务器端获取openid

ps: 用户公开的微信信息,可以通过Buttonopen-type = getUserInfo去获取,Button 组件

看完以上几个文档,至此登录流程已经很清晰了,下面就是具体操作了。

新项目直接使用云开发模板即可。
老项目开通云开发也很简单,点击开发者工具中菜单上的【云开发】一步步操作即可。
微信小程序开通云开发并利用云函数获取Openid_第1张图片

由于我们没有服务器,要获取小程序中用户的唯一标识openid,需要新建一个云函数,将Openid等参数返回。
微信小程序开通云开发并利用云函数获取Openid_第2张图片

没有使用云开发模板的项目, 可参考 我的第一个云函数 中的使用方法来实现云函数获取openid
微信小程序开通云开发并利用云函数获取Openid_第3张图片

看不明白官方文档的
结合我的做法再看一遍文档吧:

  1. project.config.json添加"cloudfunctionRoot": "./functions/"
    微信小程序开通云开发并利用云函数获取Openid_第4张图片

  2. 新建云函数
    微信小程序开通云开发并利用云函数获取Openid_第5张图片

  3. 部署云函数,之后点击【云开发】之后可查看到刚刚新建的函数
    微信小程序开通云开发并利用云函数获取Openid_第6张图片
    微信小程序开通云开发并利用云函数获取Openid_第7张图片

  4. 然后编写获取openid的云函数
    微信小程序开通云开发并利用云函数获取Openid_第8张图片

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()

  return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}
  1. 最后调用一下云函数,获取openid
    微信小程序开通云开发并利用云函数获取Openid_第9张图片
 // 获取用户openid
  getOpenid() {
    let that = this;
    wx.cloud.callFunction({
      name: 'getOpenid',
      complete: res => {
        console.log('openid: ', res.result.openid)
        console.log('appid: ', res.result.appid)
        // var openid = res.result.openId;
        // that.setData({
        //   openid: openid
        // })
      }
    })
  },

你可能感兴趣的:(小程序之旅)