2022最新微信小程序授权登录(前后端分离)

11

2022最新微信小程序授权登录(前后端分离)

微信小程序授权登录(前后端分离)

最近两年的微信小程序更新中,有两个比较大的变动值得我们关注。首先是获取用户信息接口的更换,从原来的 `wx.getUserInfo` 变为 `wx.getUserProfile`,其次是2021年4月28日24时后发布的小程序新版本,这个新版本对开发者调用 `wx.getUserInfo` 的影响。

变动一:获取用户信息接口

从微信小程序的更新记录中,我们可以看到,从2021年4月28日起,微信小程序开始推出一个新的版本。这个新版本对开发者的影响是:如果你在调用 `wx.getUserInfo` 的时候,不会再弹出一个弹窗,让用户授权你的小程序获取其个人信息。

变动二:2021年4月28日24时后发布的小程序新版本

从微信小程序的更新记录中,我们可以看到,从2021年4月28日起,微信小程序开始推出一个新的版本。这个新版本对开发者的影响是:如果你在调用 `wx.getUserInfo` 的时候,不会再弹出一个弹窗,让用户授权你的小程序获取其个人信息。

前后端分离

在微信小程序中,为了保证数据的安全性和隐私性,我们需要进行前后端分离。也就是说,我们需要将数据存储在服务端,而不是直接存储在客户端(小程序)中。

授权登录流程

下面是微信小程序授权登录的流程:

1. 用户点击登录按钮:用户点击登录按钮后,会触发 `wx.login` 接口。

2. 获取用户信息:服务端通过 `wx.getUserProfile` 接口获取用户的个人信息。

3. 校验用户信息:服务端校验用户的个人信息是否正确。

4. 返回登录结果:如果用户信息正确,服务端会返回一个登录成功的结果。

前后端分离示例

下面是一个简单的前后端分离示例:

```javascript// 小程序端wx.login({

success: function (res) {

if (res.code) {

// 发送请求到服务端,获取用户信息 wx.request({

url: ' method: 'POST',

data: {

code: res.code,

encryptedData: res.encryptedData,

iv: res.iv },

success: function (res) {

if (res.data.success) {

// 登录成功,跳转到下一个页面 wx.redirectTo({

url: '/pages/index'

})

} else {

// 登录失败,提示用户错误信息 wx.showToast({

title: '登录失败',

icon: 'none'

})

}

},

fail: function (res) {

// 请求失败,提示用户错误信息 wx.showToast({

title: '请求失败',

icon: 'none'

})

}

})

} else {

// 获取用户信息失败,提示用户错误信息 wx.showToast({

title: '获取用户信息失败',

icon: 'none'

})

}

},

fail: function (res) {

// 登录失败,提示用户错误信息 wx.showToast({

title: '登录失败',

icon: 'none'

})

}

})

```

```javascript//服务端(Node.js)

const express = require('express');

const app = express();

app.use(express.json());

app.post('/login', (req, res) => {

const { code, encryptedData, iv } = req.body;

// 校验用户信息 if (code && encryptedData && iv) {

// 获取用户信息 wx.getUserProfile({

success: function (res) {

if (res.userInfo) {

// 返回登录结果 res.json({ success: true });

} else {

// 用户信息错误,返回失败结果 res.json({ success: false, message: '用户信息错误' });

}

},

fail: function (res) {

// 获取用户信息失败,返回失败结果 res.json({ success: false, message: '获取用户信息失败' });

}

});

} else {

// 用户信息错误,返回失败结果 res.json({ success: false, message: '用户信息错误' });

}

});

```

总结

微信小程序授权登录(前后端分离)是一个复杂的过程,需要进行前后端分离,并且需要在服务端校验用户的个人信息。通过上面的示例,我们可以看到,如何在小程序端和服务端之间进行数据交互,以及如何在服务端校验用户的个人信息。

小程序登录授权微信小程序springboot

版权声明:除非特别标注,否则均为网络文章,侵权请联系站长删除。

上一篇 制作淘宝客微信公众号(一)

下一篇 微信公众号、小程序用户隐私保护指引完善