微信小程序开发中用户登陆获取用户信息示例
微信小程序登录获取用户信息推荐采用wx.login获取登录凭证 → 后端换取openid/session_key→ 前端通过授权组件获取用户头像昵称如业务确实需要的方式。1. 小程序端// pages/login/login.js Page({ login() { wx.login({ success: (res) { if (!res.code) { wx.showToast({ title: 登录失败, icon: none }) return } // 将 code 发送给自己的后端 wx.request({ url: https://api.example.com/wx/login, method: POST, data: { code: res.code }, success: (result) { console.log(登录结果, result.data) // 后端返回自己的登录 token wx.setStorageSync(token, result.data.token) } }) } }) } })2. 获取用户头像和昵称如果只是登录不需要强制获取用户信息。需要用户资料时可以让用户主动授权例如使用open-typechooseAvatarbutton open-typechooseAvatar bindchooseavataronChooseAvatar 选择头像 /button input typenickname placeholder请输入昵称 bindinputonNicknameInput /Page({ data: { avatarUrl: , nickname: }, onChooseAvatar(e) { this.setData({ avatarUrl: e.detail.avatarUrl }) }, onNicknameInput(e) { this.setData({ nickname: e.detail.value }) } })然后把avatarUrl、nickname提交给自己的后端保存。3. 后端获取openid小程序调用wx.login() ↓ 得到 code ↓ POST /wx/login ↓ 你的服务器 ↓ 调用微信登录接口 ↓ 得到 openid、session_key ↓ 创建/查询自己的用户 ↓ 返回自己的 token例如 Node.jsconst axios require(axios) async function wxLogin(code) { const appid process.env.WX_APPID const secret process.env.WX_SECRET const url https://api.weixin.qq.com/sns/jscode2session const { data } await axios.get(url, { params: { appid, secret, js_code: code, grant_type: authorization_code } }) if (data.errcode) { throw new Error(data.errmsg) } return { openid: data.openid, sessionKey: data.session_key } }4. Express 登录接口示例app.post(/wx/login, async (req, res) { try { const { code } req.body if (!code) { return res.status(400).json({ message: 缺少 code }) } const wxUser await wxLogin(code) // 根据 openid 查询自己的用户 let user await User.findOne({ where: { openid: wxUser.openid } }) // 第一次登录创建用户 if (!user) { user await User.create({ openid: wxUser.openid }) } // 实际项目中应该生成 JWT / session token const token createToken({ userId: user.id }) res.json({ token, user: { id: user.id, openid: user.openid } }) } catch (err) { console.error(err) res.status(500).json({ message: 登录失败 }) } })5. 一个重要的安全点不要把AppSecret放到微信小程序前端代码里。错误// ❌ 不要这样 const secret xxxxxxxxxxxxxxxxAppID可以用于小程序配置但AppSecret、session_key等敏感信息应该只保存在服务器。推荐长沙专业做小程序开发公司湖南分云网络科技有限公司做小程序开发app开发网站开发系统定制开发业务问题到官网咨询查看另外session_key不要直接返回给小程序也不要作为前端登录 token 使用。通常应该由后端根据openid建立自己的用户体系并返回自己的token。