获取用户端的唯一标识

标签: 获取用户唯一标识  openid  session_key  加密签名密钥

微信登录:获取微信用户的唯一标识id。

基本流程如下:

  • (1)通过wx.login( ) 获取用户的code值
  • (2)拿到用户的code值,通过wx.request( ) 请求微信接口(https://api.weixin.qq.com/sns/jscode2session)服务,请求传参(code、appid、appsecret、grant_type)
  • (3)请求接口后,就可以得到  openid 和 session_key的值

请求地址:https://api.weixin.qq.com/sns/jscode2session(微信提供的)

请求参数:

属性 类型 默认值 必填 说明
appid string  

小程序appId

secret string   小程序appSecret
js_code string   登录时获取的code
grant_type string   授权类型,此处只需填写

authorization_code

返回的值:

属性 类型 说明
openid string 用户唯一标识
session_key string 会话密钥
unionid string 用户在开放平台的唯一标识符,在满足UnionID下发条件的情况会返回,详见UnionID机制说明
errcode number 错误码
errmsg string 错误信息

errorcode的合法值:

说明
-1 系统繁忙,此时请开发者稍后再试
0 请求成功

其中appId和appSecret来自如下:

栗子:

<button bindtap='getOpenId'>获取用户的唯一openid</button>
var var appId = '自己从上图拿取',
appSecret = '自己从上图拿取';

getOpenId: function() {  // 获取用户的唯一标识
    wx.login({
      success(res){
        console.log('code====',res.code);
        wx.request({
          url: 'https://api.weixin.qq.com/sns/jscode2session',
          data:{
            appid: appId,
            secret: appSecret,
            js_code: res.code,
            grant_type:'authorization_code'
          },
          method:"GET",
          success(res){
            console.log('openid=====',res.data.openid);   // 得到openid
            console.log('session_key====', res.data.session_key);   // 得到 session_key
          }
        })
      }
    })
  }

页面截图:

点击按钮拿到的值如下:

这样就可以得到用户的唯一标识openId,也可以拿到session_key。

 

说明:

  1. 调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。
  2. 调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key。

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

注意:

  1. 会话密钥 session_key 是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。
  2. 临时登录凭证 code 只能使用一次
版权声明:本文为Miss_liangrm原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Miss_liangrm/article/details/93265332