微信小程序 获取用户端的唯一标识
·
微信登录:获取微信用户的唯一标识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。
说明:
- 调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。
- 调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key。
之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。
注意:
- 会话密钥
session_key是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。 - 临时登录凭证 code 只能使用一次
更多推荐
所有评论(0)