微信小程序面试题
目录

如何使用 code 换取 openid 和 session_key?

· 约 3 分钟读完 · 第 152 / 211 章

推荐答案

本题详细解读

1. 获取 code

在小程序中,用户登录后会通过 wx.login 接口获取到一个临时的登录凭证 code。这个 code 是换取 openid 和 session_key 的关键。

2. 构造请求 URL

使用 code 换取 openid 和 session_key 需要向微信服务器发送一个 HTTP 请求。请求的 URL 格式如下:

  • appid: 小程序的 AppID
  • secret: 小程序的 AppSecret
  • js_code: 通过 wx.login 获取到的 code
  • grant_type: 固定为 authorization_code

3. 发起请求

在小程序中,可以使用 wx.request 发起 HTTP 请求。请求成功后,微信服务器会返回一个 JSON 对象,其中包含 openid 和 session_key。

4. 处理响应

在 wx.request 的 success 回调中,可以获取到微信服务器返回的数据。通常,返回的数据结构如下:

  • openid: 用户的唯一标识,可以用来标识用户身份。
  • session_key: 会话密钥,用于后续的敏感数据解密等操作。

5. 错误处理

如果请求失败,可以在 fail 回调中处理错误,或者通过 res.statusCode 来判断请求是否成功。

6. 安全性注意事项

  • AppSecret 是非常敏感的信息,不应该在前端代码中直接暴露。
  • session_key 也不应该直接暴露给客户端,应该存储在服务器端,并通过安全的通道进行通信。