zoukankan      html  css  js  c++  java
  • 微信公众号H5用户授权

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

    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

    
    
  • 相关阅读:
    关于loose.dtd和xhtml1transitional.dtd等文档类型定义模型中CSS失效的解决办法。
    JSON扫盲帖+JSON类教程
    jQuery中Ajax事件
    JQuery绑定事件 时如何传递参数
    xml include 另外一个xml文件
    ubuntu 两张网卡时网络设置
    Letcode 题:pow(x,n)
    Java编程语言中sleep()和yield()的区别
    JProfiler与eclipse集成
    zz 字符串相关
  • 原文地址:https://www.cnblogs.com/leungUwah/p/9119549.html
Copyright © 2011-2022 走看看