基于 uniCloud 的微信小程序登录功能的完整 demo,包括 服务端(云函数)和 客户端(前端代码)。
这个功能的核心思路是:
- 前端 使用 wx.login() 获取 微信登录临时凭证 code 并传递给 云函数。
- 云函数 调用 微信服务器 进行 code2Session 交换 openid 和 session_key。
- 云函数 在 users 数据库中查找或创建用户,返回openid 及 token 供前端使用。
1. 创建项目
HBuilderX新建项目
项目创建勾选”启用Unicloud,并选中阿里云
点击新建服务空间
学习阶段使用阿里云免费版
关联云空间
创建数据库
新建登录云函数
在 uniCloud
创建云函数 login
,用于处理微信登录逻辑。
1.1 创建云函数
在 uniCloud
目录下创建 cloudfunctions/login/index.js
,并编写以下代码:
'use strict';
const db = uniCloud.database();
const userCollection = db.collection('users');
exports.main = async (event, context) => {
const {
code, userInfo } = event; // 接收前端传来的 code 和用户信息
if (!code) {
return {
code: 400, msg: '缺少 code 参数'