leungUwah

 其实不是很难,总结起来就是:

1.微信公众号管理后台设置redirect_uri。

2.然后发起一个请求去重定向获取code,然后把获取到code之后重定向的URL放在获取code的URL中

3.获取到code之后就可以获取到openid一些之类的信息了

上代码:

const express = require(\'express\')
const router = express.Router()

router.get(\'/oauth2/snsapi_base\', function (req, res, next) {
  const redirectUrl = \'beta.weixin.douanquan.com/weixin/oauth2/snsapi_base_cb?sourceurl=\' +
    encodeURIComponent((req.query.sourceurl || \'/personal\'))
  console.log("mmm----------", redirectUrl)
  console.log(\'/oauth2/snsapi_base\', hospitalId, redirectUrl)

  res.redirect(\'https://open.weixin.qq.com/connect/oauth2/authorize?\' +
    \'appid=\' + "wxf1a4bbd24d59f858" +
    \'&redirect_uri=\' + encodeURIComponent(redirectUrl) +
    \'&response_type=code\' +
    \'&scope=snsapi_base\' +
    \'&state=\' + hospitalId +
    \'#wechat_redirect\'
  )
})

router.get(\'/oauth2/snsapi_base_cb\', async function (req, res, next) {
  const hospitalId = req.session.hospitalId
  const wxConfig = config.wxAppidList[hospitalId]
  res.cookie("qqq","jjj")
  console.log(\'/oauth2/snsapi_base_cb\', hospitalId, req.query.code, wxConfig)

  const { data } = await axios.get(\'https://api.weixin.qq.com/sns/oauth2/access_token\', {
    params: {
      appid: wxConfig.appId,
      secret: wxConfig.appSecret,
      code: req.query.code,
      grant_type: \'authorization_code\'
    }
  })
  res.cookie(\'openid\', data.openid)
 
})

这种是静默授权的方式,换成弹框的把scope改成snsapi_userinfo


分类:

技术点:

相关文章:

  • 2021-12-20
  • 2021-12-19
  • 2021-12-08
  • 2021-11-12
  • 2021-10-19
  • 2021-11-12
猜你喜欢
  • 2021-11-21
  • 2021-12-14
  • 2021-11-21
  • 2021-12-15
  • 2021-11-11
  • 2021-09-09
  • 2021-12-22
相关资源
相似解决方案