您好,小程序模板欢迎您。
小程序模板
当前位置 : 首页> 小程序教程> 微信小程序登陆并获取用户信息

微信小程序登陆并获取用户信息


以下是微信小程序登录并获取用户信息(openid、session_key)的详细步骤:

前期准备

在微信公众平台注册小程序账号,获取 AppID 和 AppSecret。

登录微信公众平台,进入小程序后台,在 “开发” - “开发设置” 中配置服务器域名,确保后端服务器域名在微信合法域名列表中。

登录流程

获取临时登录凭证 code:在小程序中调用wx.login接口,向微信服务器发送请求获取临时登录凭证code。示例代码如下:

javascript

wx.login({

  success(res) {

    if (res.code) {

      // res.code是微信返回的临时登录凭证,将其发送到后端服务器

    } else {

      console.log('登录失败!' + res.errmsg)

    }

  }

})

服务器端交换 openid 和 session_key:将code、小程序的appid和appsecret发送到后端服务器。服务器使用这些信息调用微信的jscode2session接口(如https://api.weixin.qq.com/sns/jscode2session),换取用户的openid和session_key。不同后端语言有不同的实现方式,以 Java 为例,可使用OkHttp等库发送请求。

验证签名和获取用户信息(可选):如果需要获取用户的详细信息(如昵称、头像等),可以调用wx.getUserProfile接口,但这需要用户授权。该接口需在页面产生点击事件后才可调用,每次请求都会弹出授权窗口,用户同意后返回用户信息。示例代码如下:

javascript

wx.getUserProfile({

  desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中

  success: (res) => {

    // res.userInfo包含用户信息,如res.userInfo.nickName、res.userInfo.avatarUrl等

  }

})

wx.getUserProfile返回的用户信息是明文,可直接获取使用,无需像旧版wx.getUserInfo那样通过session_key解密。

数据存储与使用

服务器处理用户信息:服务器获取到用户信息后,可以将其存储在数据库中,以openid作为用户的唯一标识。同时,也可以生成一个服务器端的会话标识(如session_id或token),用于后续接口调用的身份验证。

客户端保存会话标识:客户端收到服务器返回的会话标识后,将其保存在本地,通常使用小程序的全局存储wx.setStorageSync。例如:wx.setStorageSync('session_id', 'your_session_id')。

后续接口调用:在后续的网络请求中,客户端需要带上会话标识,以便服务器验证用户身份。例如,在wx.request的请求头中添加Authorization: Bearer your_session_id。

openid是用户在当前小程序的唯一标识,session_key是对用户数据进行加密签名的密钥,主要用于和微信服务器进行数据交互时的加密和解密,保障数据的安全性和完整性。同时,session_key具有时效性,且微信不会把其有效期告知开发者,开发者可通过wx.checkSession接口来校验session_key是否有效,失效时可重新执行登录流程获取新的session_key。


联系客服 意见反馈

签到成功!

已连续签到1天,签到3天将获得积分VIP1天

知道了