需求:
没有服务器开发,如何实现微信小程序端的登录功能?
旧项目转云开发并使用云函数?
以上是我目前项目的背景。
小程序端的登录流程,官网介绍的很清楚了
主要就是通过 wx.login 去获取code,然后拿code去服务器端获取openid
ps: 用户公开的微信信息,可以通过Button 的open-type = getUserInfo去获取,
看完以上几个文档,至此登录流程已经很清晰了,下面就是具体操作了。
新项目直接使用云开发模板即可。
老项目开通云开发也很简单,点击开发者工具中菜单上的【云开发】一步步操作即可。
由于我们没有服务器,要获取小程序中用户的唯一标识openid,需要新建一个云函数,将Openid等参数返回。
没有使用云开发模板的项目, 可参考 openid。
看不明白官方文档的
结合我的做法再看一遍文档吧:
在project.config.json添加"cloudfunctionRoot": "./functions/"
新建云函数
部署云函数,之后点击【云开发】之后可查看到刚刚新建的函数
然后编写获取openid的云函数
// 云函数入口文件
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,
}
}
最后调用一下云函数,获取openid
// 获取用户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
// })
}
})
},
本文同步分享在 博客“_龙衣”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。