1. 小程序登录
小程序有两种登录方式,一种基于手机号码进行登录,另一种是使用用户在公众号下的唯一标识(openid)进行登录(小程序是公众号的一种).
接下来先讲解下,基于 openid 登录。
1.1 基于 openid 登录
先看下图,描述通过微信小程序提供的 code 换取当前用户在小程序中的唯一标识,详细流程可以参数下图:
接下来通过代码实现下大概流程:
获取 code
uni.login({
success: async (res) => {
if (res.errMsg === 'login:ok') {
const {
data } = await login({
code: res.code,
});
// 保存用户信息
}
},
fail(e) {
uni.showToast({
title: e.message,
});
},
});
服务端接收 code 去微信后台换取对应 openid
// nodejs 部分代码
const {
appid, secret, grant_type } = require('../config/wx');
router.post('/login', (req, res) => {
const {
code } = req.query;
const {
appid, secret, grant_type } = require('../config/wx');
const {
openid } = await request.get('/sns/jscode2session', {
appid,
secret,
js_code: code,
grant_type,
});
});
在数据库中查找对应 openid 是否存在
const {
appid, secret, grant_type } = require('../config/wx');
router.post('/login', (req, res) => {
// 1. 获取 code
const {
code } = req.query;
// 2. 通过 code 获取 openid 和 session_key
const {