这篇文章主要介绍了微信小程序如何获取 openid 及用户信息, 具有一定的参考价值, 感兴趣的小伙伴们可以参考一下
微信小程序获取 openid 及用户信息的方法
1. 获取 openid
1.1 获取 code
调用接口获取登录凭证 (code) 进而换取用户登录态信息, 包括用户的唯一标识 (openid) 及本次登录的会话密钥(session_key) 用户数据的加解密通讯需要依赖会话密钥完成
- wx.login({
- // 获取 code
- success: function(res) {
- code = res.code // 返回 code
- }
- })
1.2 获取 openid
拿到上一步获取的 code, 结合小程序 appid 和 secret 请求接口 https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code 换取 openid, 与 openid 一同被返回的, 还包括 session_key, 其中 session_key 是对用户数据进行加密签名的密钥为了自身应用安全, session_key 不应该在网络上传输
- wx.request({
- url: 'https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code='+ code +'&grant_type=authorization_code',
- data: {},
- header: {
- 'content-type': 'application/json'
- },
- success: function(res) {
- openid = res.data.openid // 返回 openid
- }
- })
2. 获取用户信息
2.1 在 app.js 中创建该全局方法
- //app.js
- getUserInfo:function(cb){
- var that = this
- if(this.globalData.personInfo){
- typeof cb == "function" && cb(this.globalData.personInfo)
- }else{
- // 调用登录接口
- wx.login({
- success: function () {
- wx.getUserInfo({
- success: function (res) {
- that.globalData.personInfo = res.userInfo
- typeof cb == "function" && cb(that.globalData.personInfo)
- }
- })
- }
- })
- }
- }
2.2 实例化全局方法获取用户信息
- var that = this;
- // 调用应用实例的方法获取全局数据
- app.getUserInfo(function (personInfo) {
- // 更新数据
- that.setData({
- personInfo: personInfo
- })
- })
来源: http://www.phperz.com/article/18/0221/363170.html