用户微信登录小程序有两种情况,分别为弹出登录提示和不弹出登录提示两种。弹出登录提示的情况下,用户确定后会向后台传入更多参数,例如用户昵称等。不弹出登录提示只能获取到用户的临时登录凭证code。主要根据第二种情况进行描述。
这个code具有时效性,能用于区别用户,需要从小程序前端传到开发者服务器后端,再从后端传到微信服务器进行核验,来获取用户唯一标识openid和会话密钥 session_key。
对于小程序前端,所需要做的只有通过wx.login获取到code,并通过wx.request将code发送给开发者服务器。
官方文档流程图如下:

代码如下:
onLoad: function () {
// 获取用户openid
let that = this
wx.login({
success: function (res) { //请求自己后台获取用户openid
console.log(res.code)
wx.request({
url: '开发者后台接口',
data: {
appid: '自己的微信公众号获取',
secret: '自己的微信公众号获取',
code: res.code
},
success: function (response) {
var openid = response.data.openid;
console.log('请求获取openid:' + openid); //可以把openid存到本地,方便以后调用
wx.setStorageSync('openid', openid);
that.setData({
openid: "获取到的openid:" + openid
})
}
})
}
})
将该请求写在了onload生命周期函数内部,可以在界面打开时即调用获取到用户的openid。
本文详细介绍了微信小程序中用户登录的两种情况,特别是不弹出登录提示时,如何通过wx.login获取code,并将其传递给开发者服务器以换取openid和session_key的过程。这个流程涉及到微信服务器与开发者服务器之间的交互,确保了用户身份的安全验证。
&spm=1001.2101.3001.5002&articleId=123659824&d=1&t=3&u=9847e783571c4d97abbf1f2ea3b87b22)
6309

被折叠的 条评论
为什么被折叠?



