微信小程序获取用户openid

1、wx.login(OBJECT)

   调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key)。用户数据的加解密通讯需要依赖会话密钥完成。

2、code 换取 session_key

​  这是一个 HTTPS 接口,开发者服务器使用登录凭证 code 获取 session_key 和 openid。其中 session_key 是对用户数据进行加密签名的密钥。为了自身应用安全,session_key 不应该在网络上传输。
接口地址:
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

详细的介绍请看小程序APIhttps://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html#wxloginobject

3、获取用户openid实例


  
  
  1. //app.js
  2. App({
  3. globalData:{
  4. appid: '1wqas2342dasaqwe2323424ac23qwe', //appid需自己提供,此处的appid我随机编写
  5. secret: 'e0dassdadef2424234209bwqqweqw123ccqwa', //secret需自己提供,此处的secret我随机编写
  6. },
  7. onLaunch: function () {
  8. var that = this
  9. var user=wx.getStorageSync( 'user') || {};
  10. var userInfo=wx.getStorageSync( 'userInfo') || {};
  11. if((!user.openid || (user.expires_in || Date.now()) < ( Date.now() + 600))&&(!userInfo.nickName)){
  12. wx.login({
  13. success: function(res){
  14. if(res.code) {
  15. wx.getUserInfo({
  16. success: function (res) {
  17. var objz={};
  18. objz.avatarUrl=res.userInfo.avatarUrl;
  19. objz.nickName=res.userInfo.nickName;
  20. //console.log(objz);
  21. wx.setStorageSync( 'userInfo', objz); //存储userInfo
  22. }
  23. });
  24. var d=that.globalData; //这里存储了appid、secret、token串
  25. var l= 'https://api.weixin.qq.com/sns/jscode2session?appid='+d.appid+ '&secret='+d.secret+ '&js_code='+res.code+ '&grant_type=authorization_code';
  26. wx.request({
  27. url: l,
  28. data: {},
  29. method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
  30. // header: {}, // 设置请求的 header
  31. success: function(res){
  32. var obj={};
  33. obj.openid=res.data.openid;
  34. obj.expires_in= Date.now()+res.data.expires_in;
  35. //console.log(obj);
  36. wx.setStorageSync( 'user', obj); //存储openid
  37. }
  38. });
  39. } else {
  40. console.log( '获取用户登录态失败!' + res.errMsg)
  41. }
  42. }
  43. });
  44. }
  45. },
  46. })


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值