欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

获取用户端的唯一标识

程序员文章站 2022-05-28 14:33:58
...

微信登录:获取微信用户的唯一标识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 只能使用一次