如何在微信小程序中获取用户信息

  介绍

本篇文章为大家展示了如何在微信小程序中获取用户信息,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

有两种获取用户信息的方案。

1,不包含敏感信息openId的json对象(包含:昵称,avatarUrl等基本信息)
2,包含敏感信息openId的基本信息。

<强>第一种获取方案

1,首先调用wx.login()接口让用户授权验证,也就是我们肉眼观察到的,你是否对xxxxx授权这种信息。
2,用户成功授权后,调用wx.getUserInfo()接口获取用户信息。

完整代码如下

wx.login ({   ,成功:函数(){   ,wx.getUserInfo ({   成功:才能函数(res) {   var 才能;simpleUser =, res.userInfo;   console.log才能(simpleUser.nickName);   ,,}   ,});   ,}   });

<强>第二种强比较复杂了,需要与后台进行交互才能获得用户信息,但是这种方案获得的数据是完整的(包含openId)。

1,调用wx.login()接口授权在成功成功函数的参数中包含代码。
2,调用wx.getUserInfo()接口成功函数中包含encryptedData, iv
3,将上述参数传给后台解析,生成用户信息

代码如下
js

var  request =,要求(“. ./. ./跑龙套/request.js");      wx.login ({   ,成功:函数(res_login) {   如果(res_login.code)才能   {才能   wx.getUserInfo({才能   ,,withCredentials:没错,   ,才能成功:函数(res_user) {   ,,var  requestUrl =,“/getUserApi/xxx.php";   ,,var  jsonData =, {   ,,,代码:res_login.code,   ,,,encryptedData: res_user.encryptedData,   ,,,第四:res_user.iv   ,,,};   ,,request.httpsPostRequest (requestUrl jsonData,函数(res) {   ,,console.log (res.openId);   ,,});   ,,}   })才能   ,,}   ,}   之前,})

后台解析

/* *   ,*获取粉丝信息   *大敌;其中的参数就是前端传递过来的   ,*/public  function  wxUserInfo(代码,encryptedData美元,美元(四)   {=,美元apiUrl “https://api.weixin.qq.com/sns/jscode2session?appid={$ this→wxConfig [& # 39; appid& # 39;]},秘密={$ this→wxConfig [& # 39; appsecret& # 39;]}, js_code={$代码},grant_type=authorization_code";      ,apiData 美元;=,json_decode (curlHttp (apiUrl美元,真的),真的);      ,如果(!收取($ apiData [& # 39; session_key& # 39;)))   ,{   ,echoJson(数组(   ,,“code"=祝辞,102年,   ,,“msg"=祝辞,“curl  error"   ,),真正的);   ,}      ,userInfo 美元;=,getUserInfo ($ this→wxConfig [& # 39; appid& # 39;],美元apiData [& # 39; session_key& # 39;], encryptedData美元,美元(四);      ,如果(! $用户信息)   ,{   ,echoJson(数组(   ,,“code"=祝辞,105年,   ,,“msg"=祝辞,“userInfo  not"   ,));   ,}      ,//userInfo 美元;=,json_decode($用户信息,真实);      ,//载入用户服务   ,//userService 美元;=,load_service (“User");      ,//美元userService→checkUser ($ this projectId的话,用户信息美元);      ,echo 用户信息;美元//微信响应的就是一个json数据   }

getUserInfo函数其中wxBizDataCrypt。php就是微信官方提供的素材包

curlHttp函数是一个自定函数该函数的源码查看我的这篇文章curlHttp

//获取粉丝信息   function  getUserInfo ($ appid sessionKey美元encryptedData美元,美元(四){   ,require_once  ROOTPATH 只“//wxUser/wxBizDataCrypt.php"延伸;   数组,data 美元;=,();   ,pc 美元;=,new  WXBizDataCrypt (appid美元,,sessionKey美元);   美元,美元errCode =,电脑→decryptData (encryptedData美元,美元四世,data 美元;);      ,if  (errCode 美元;==,0),{   美元,return 数据;   ,}else  {   ,return 假;   ,}   }

自己写的小工具的要求。js

var  app =, getApp ();//远程请求   var  __httpsRequest =, {      ,//http 请求   ,https_request :函数(obj) {   ,wx.request (obj);   },      ,//文件上传   ,upload_request :函数(数据源){   ,wx.uploadFile(数据源);   ,}   };      module.exports =, {   ,//执行异步请求   ,httpsRequest:函数(obj) {   ,var  jsonUrl =, {};=,,jsonUrl.url  obj.url;   ,如果(obj.header) jsonUrl.header=obj.header;   ,如果(obj.type)   时间=jsonUrl.method 才能;obj.type;   其他的,   jsonUrl.method才能=癎ET";   ,如果(obj.data) jsonUrl.data =, obj.data;   ,obj.dataType ? (jsonUrl.dataType=obj.dataType): (jsonUrl.dataType=癹son");=,,jsonUrl.success  obj.success;=,,jsonUrl.data.projectId  app.globalData.projectId;      ,__httpsRequest.https_request (jsonUrl);   },      ,//get 请求   ,httpsGetRequest:函数(req_url、req_obj res_func)   ,{   ,var  jsonUrl =, {   url:才能app.globalData.host  +, req_url,   头才能:{“Content-Type":“应用程序/json"},   数据类型:才能“json",   方法:“get"才能,   成功:才能函数(res)   {才能   typeof 才能;res_func ==,“function",,,, res_func (res.data);   ,,}   ,}      null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在微信小程序中获取用户信息