微信小程序获取用户openid (Nodejs)

微信小程序需要获取用户的openid来作为用户的唯一身份认证,用来存储和更新对应客户信息。 以Node后台为例, 前台发出请求后,后台转发访问对应的微信接口来获取openid.

1. 小程序前端请求:

getUserInfo: function(e) {
  app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
    wx.login({
      success: res => {
        app.globalData.usercode = res.code    //1. 获取usercode作为后面获取openid的参数
      }
    })

      var id=null
    id=wx.getStorageSync('openid')
    if (!id)
    {

      wx.request({
        url: getOpenId, //set in config .js  //2.后台API
        method: "POST",
        data: {
          js_code: app.globalData.usercode,
        }, success(res) {
          var openId = res.data.openid
          var sessionKey = res.data.session_key
          console.log(res)
          wx.setStorageSync("openid", openId)
          app.globalData.openId = openId
          if (!!openId) {      //3.获取到openid后的处理,可以依照自己的逻辑写
            app.globalData.openId = openId
            wxlogin(openId)
          }
        }
      })
    }

    
  }
})

2. Node JS 后台获取openid:

router.post('/wxgetOpenId', function (req, res, next) {  
  var data=req.body
  var APP_URL='https://api.weixin.qq.com/sns/jscode2session'
  var APP_ID='wxXXXXXXXXX'   //小程序的app id ,在公众开发者后台可以看到
  var APP_SECRET='8ad6f0XXXXXXXXXXXX'  //程序的app secrect,在公众开发者后台可以看到

  var resData=null 
  var thisRes=res
  if(!!data.js_code)
  {
 
    request(`${APP_URL}?appid=${APP_ID}&secret=${APP_SECRET}&js_code=${data.js_code}&grant_type=authorization_code`, (error, response, body)=>{
      console.log('statusCode:', response && response.statusCode)
      console.log(body)
      res.end(body)})
 
  }
})

 

 
 

 

转载于:https://www.cnblogs.com/Aaron-Lee/p/11374651.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值