auth-wechat-miniprogram 是做什么的?
CloudBase 微信小程序原生认证指南。此技能适用于用户需要小程序身份处理、获取 OPENID/UNIONID 或在项目中使用 wx.cloud 认证行为的场景,其中登录方式是原生且自动的。
概述
在微信小程序开发中,通常需要获取用户的唯一标识(如 OPENID 或 UNIONID)以进行业务逻辑处理。此技能基于腾讯云 CloudBase 的 wx.cloud 能力,提供了一种原生、自动的认证方案。
核心功能
- 自动获取身份:通过
wx.login接口自动获取临时 code,并换取 OPENID/UNIONID。 - 集成 CloudBase:利用
wx.cloud.callFunction调用云函数,在后端安全处理用户身份。 - 无感认证:用户无需手动登录或授权页面,应用即可自动完成身份绑定。
使用步骤
1. 初始化 CloudBase SDK
在项目的 app.js 或页面入口文件进行初始化:
const cloud = require('wx-server-sdk')
cloud.init({
env: 'your-env-id'
})
2. 获取用户身份
在小程序启动时或需要身份的时刻调用:
wx.login({
success: res => {
if (res.code) {
// 将 code 传递给云函数
wx.cloud.callFunction({
name: 'login',
data: {
code: res.code
},
success: cloudRes => {
const { openid, unionid } = cloudRes.result
// 处理用户身份
},
fail: err => {
console.error('认证失败:', err)
}
})
} else {
console.error('获取 code 失败:', res.errMsg)
}
}
})
3. 云函数处理
创建云函数 login 并编写处理逻辑:
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
const { code } = event
try {
const result = await cloud.getOpenData({
code
})
return {
openid: result.openid,
unionid: result.unionid
}
} catch (err) {
return {
error: err
}
}
}
注意事项
- 确保已开通 CloudBase 环境并启用微信登录能力。
- 生产环境建议将用户身份存储在云端数据库中以供后续查询。
- 此方案适用于后端无额外认证服务器的场景。