微信公众号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
微信公众号H5用户授权的更多相关文章
- 微信公众号通过用户授权获取用户基本信息java版
		公司需要开发一个微信公众号,要求用户通过公众号登录公司网站时候自动获取用户的基本信息,在网上查资料发现大部分都是直接copy微信公众平台的开发文档,感觉还是介绍的不是太小白,所以为了方便大家也为了自己 ... 
- js 微信公众号网页用户授权,获取微信code,access_tocken,用户信息
		第一次做微信网页授权,过程有点艰难,主要是不知道redirect_uri的地址要怎么写,刚开始我以为就是授权结束后要跳转到的首页地址,于是写成了uri = 'http://18i194c049.ias ... 
- 微信公众号开发用户授权登录报"redirect_uri 参数错误"错误
		微信公众号开发 授权获取用户信息报错 "redirect_uri 参数错误" 出现这个情况要检查下 微信公众号配置了网页授权域名 在这里配置微信公众号redirect_uri中的域 ... 
- 微信小程序与微信公众号同一用户登录问题
		微信小程序与微信公众号同一用户登录问题 最近在做微信小程序与微信公众号登录合并的接口.整理相关资料以及个人认识的心得写了这篇文章与大家一起分享. 首先,简单说下我遇到的问题是我们的程序调用微信小程序得 ... 
- 微信 公众号 小程序 授权 unionid 用户信息 实验总结
		-*-*-*-*-*-*-*-*-*--*-*-*-1.小程序通过code获取用户openid的接口,如果用户曾经授权并未过期,或者用户关注过同主体的公众号,会带回unionID,但没有用户头像等信息 ... 
- 微信公众号H5支付遇到的那些坑
		简史 官方文档说的很清楚,商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程. 当然,最近微信支付平台也加入了纯H5支付,也就是说用户可以在微信以外的 ... 
- ASP.NET Core2实现静默获取微信公众号的用户OpenId
		最近在做个微信公众号的项目,需要将入口放置在公众号二级菜单内,通过点击该菜单链接后进入到该项目中去,进入到项目后程序会自动通过微信公众号的API完成用户的OpenId获取.需求很简单,实现起来也不复杂 ... 
- 微信硬件平台(八) 4 ESP8266通过微信公众号给用户推送消息
		https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=自己申请微信公众号的TOKEN 输出结果: 由于aRDUINO串 ... 
- 微信公众号H5支付
		微信支付说明1.统一下单接口 统一支付接口: url: https://api.mch.weixin.qq.com/pay/unifiedorder 目的:通过此接口来创建预支付订单,获取订单支付需要 ... 
随机推荐
- Python批量生成用户名
			写在最前 平时在工作中尤其是在做压测的时候难免需要一些用户名和密码,写个简单的Python小脚本批量生成一些 代码示例 import random,string #生成大小字母和数字一起的大字符串 a ... 
- Android屏幕尺寸与度量单位(px,dp,sp)简介
			MarkdownPad Document *:first-child { margin-top: 0 !important; } body>*:last-child { margin-botto ... 
- Android 网络图片查看器与网页源码查看器
			在AndroidManifest.xml里面先添加访问网络的权限: <uses-permission android:name="android.permission.INTERNET ... 
- js中时钟表盘
			1.js时钟表盘 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ... 
- Linux 学习(三)
			Linux进程 1.进程 进程:可执行应用程序执行后产生的对应的进程,重量级:进程是由一个线程或多个线程构成: 线程:是计算机中的最小单位,轻量级(依赖和物理性是独立存在的).损耗较低 假设进程1是由 ... 
- Farseer.net轻量级开源框架 中级篇:DbFactory数据工厂
			导航 目 录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 中级篇: 执行SQL语句 下一篇:Farseer.net轻量级开源框架 中级篇: 数据绑定 ... 
- Linux 压力测试及内存检测
			常用的 Stress / Performance 工具 http://benjr.tw/532 Linux中的常用内存问题检测工具 https://blog.csdn.net/jinzhuojun/a ... 
- 弹性分布式数据集(RDD)
			spark围绕弹性分布式数据集(RDD)的概念展开的,RDD是一个可以并行操作的容错集合. 创建RDD的方法: 1.并行化集合(并行化驱动程序中现有的集合) 调用SparkContext的parall ... 
- HTML `capture` 属性
			file 类型的 <input> 除了调起系统的文件选择框外,还可通过指定 capture 属性来现场拍照或录制.配合 accept 属性,可实现更加便捷的文件获取. 比如想要录制一段视频 ... 
- day02 Python完结
			一. 常用数据类型及内置法 1 列表 定义: 列表是Python中内置有序.可变序列,列表的所有元素放在一对中括号“[]”中,并使用逗号分隔开: 当列表元素增加或删除时,列表对象自动进行扩展或收缩内存 ... 
