小程序获取openid和unionid(登陆)--小程序走过的坑(1)(最新版)

demo

官方教材:

小程序登录

 

小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。

说明:

  1. 小程序调用wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。

  2. 开发者服务器以code换取 用户唯一标识openid 和 会话密钥session_key

之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。

示例代码

//app.js
App({
  onLaunch: function() {
    wx.login({
      success: function(res) {
        if (res.code) {
          //发起网络请求
          wx.request({
            url: 'https://test.com/onLogin',
            data: {
              code: res.code
            }
          })
        } else {
          console.log('登录失败!' + res.errMsg)
        }
      }
    });
  }
})

登录凭证校验

临时登录凭证校验接口是一个 HTTPS 接口,开发者服务器使用 临时登录凭证code 获取 session_key 和 openid 等。

注意:

  1. 会话密钥session_key 是对用户数据进行加密签名的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥

  2. UnionID 只在满足一定条件的情况下返回。具体参看UnionID机制说明

  3. 临时登录凭证code只能使用一次

接口地址:

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

请求参数

参数 必填 说明
appid 小程序唯一标识
secret 小程序的 app secret
js_code 登录时获取的 code
grant_type 填写为 authorization_code

在不满足UnionID下发条件的情况下,返回参数

参数 说明
openid 用户唯一标识
session_key 会话密钥

在满足UnionID下发条件的情况下,返回参数

参数 说明
openid 用户唯一标识
session_key 会话密钥
unionid 用户在开放平台的唯一标识符

 

php代码

 

 

你可能感兴趣的:(小程序,php)