在微信小游戏开发中,授权(Auth) 是用户登录、获取用户信息等操作的重要环节。以下是微信小游戏授权添加的详细步骤和注意事项:
✅ 一、前提条件
- 你已经完成了微信小游戏的开发和发布:
- 在微信开发者工具中创建并发布小游戏。
- 有有效的
AppID(微信小游戏的唯一标识)。
- 你已经获取了微信的 授权域名(
wx.qq.com或wx.open.qq.com)。 - 你已经配置了微信小游戏的服务器域名(
wx.qq.com或wx.open.qq.com)。
✅ 二、微信小游戏授权流程
1. 获取用户授权
在用户点击“授权”按钮时,调用微信的授权接口:
wx.login({
success: (res) => {
const code = res.code;
// 发送 code 到后端服务器
}
});
2. 后端获取用户信息
后端通过 code 获取用户信息:
wx.request({
url: 'https://yourdomain.com/api/login',
method: 'POST',
data: {
code: code
},
success: (res) => {
// 解析返回的用户信息
}
});
✅ 三、授权类型(Auth Type)
微信小游戏支持以下授权类型:
| 授权类型 | 说明 |
|---|---|
snsapi_base |
基础权限,仅获取用户昵称、头像、性别、所在城市等基本信息 |
snsapi_userinfo |
用户信息权限,可获取用户昵称、头像、性别、所在城市等 |
snsapi_authorize |
完整授权,可获取用户信息和用户授权(推荐使用) |
✅ 四、授权回调处理
1. 授权成功回调
wx.login({
success: (res) => {
if (res.code) {
// 发送 code 到后端
wx.request({
url: 'https://yourdomain.com/api/login',
method: 'POST',
data: {
code: res.code
},
success: (res) => {
// 处理用户信息
}
});
} else {
console.error('授权失败');
}
}
});
2. 授权失败回调
wx.login({
success: (res) => {
if (res.code) {
// 发送 code 到后端
} else {
console.error('授权失败');
}
}
});
✅ 五、授权域名配置
在微信开发者工具中,确保你的服务器域名已经配置为:
wx.qq.comwx.open.qq.com
如果使用其他域名,需要在微信开放平台中进行域名白名单配置。
✅ 六、授权接口的使用限制
| 接口 | 说明 |
|---|---|
wx.login |
获取用户登录凭证 |
wx.getUserInfo |
获取用户信息(需授权) |
wx.getUserProfile |
获取用户信息(需授权) |
wx.getPhoneNumber |
获取用户手机号(需授权) |
✅ 七、注意事项
- 授权必须在用户点击“授权”按钮后触发,不能在页面加载时自动触发。
- 用户授权后,授权信息会保存在微信的服务器中,不能直接通过
wx.getSetting获取。 - 授权后,用户信息不会自动同步到后端,必须通过
wx.request发送请求获取。 - 授权后,用户信息不会自动更新,需要定期重新获取。
✅ 八、示例代码(微信小游戏页面)
<!-- 页面中调用授权 -->
<button bindtap="login">授权登录</button>
<script>
Page({
login() {
wx.login({
success: (res) => {
if (res.code) {
wx.request({
url: 'https://yourdomain.com/api/login',
method: 'POST',
data: {
code: res.code
},
success: (res) => {
console.log('用户信息:', res.data);
}
});
} else {
console.error('授权失败');
}
}
});
}
});
</script>
✅ 九、微信开放平台配置
- 登录 微信开放平台
- 进入 “开发” > “开发管理” > “开发项目”
- 选择你的小游戏项目,进入 “授权域名” 配置
- 添加你的服务器域名(如
yourdomain.com)
✅ 十、总结
| 步骤 | 说明 |
|---|---|
| 1 | 创建微信小游戏并获取 AppID |
| 2 | 配置服务器域名 |
| 3 | 调用 wx.login 获取用户授权 |
| 4 | 后端接收 code 并获取用户信息 |
| 5 | 配置授权域名(可选) |
如需进一步了解微信小游戏授权的详细文档,可以参考:
- 微信小游戏授权接口文档
- 微信开放平台授权域名配置
如果你有具体的问题(如:如何获取用户昵称、如何处理授权失败等),可以继续提问!