微信网页授权登录官方文档
微信网页授权登录的方法–推荐文章一
微信网页授权登录的方法–推荐文章二

总结:

微信授权方式(scope的属性值控制):

应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )

  • 静默授权
    即scope= scopr_base是静默授权,也就是不弹出页面,直接获取用户信息
  • 非静默授权(无需关注公众号,也可获取用户信息关注公众号后会是无感知的,个人比较青睐这种方式)
    -
    scope=scope_userinfo是非静默授权,用户需要同意授权,然后通过获得的openid获取用户的昵称,性别,城市等信息

1、上面已经提到,对于以snsapi_base为scope的网页授权,就静默授权的,用户无感知;
2、对于已关注公众号的用户,如果用户从公众号的会话或者自定义菜单进入本公众号的网页授权页,即使是scope为snsapi_userinfo,也是静默授权,用户无感知。

网页授权流程分为四步

1、引导用户进入授权页面同意授权,获取code

说白了就是跳转到微信的一个网址,携带将要授权的微信公众号的appId,另一方个回调URL,其实就是我们当前页面的URL,然后服务端会自动跳转回来,携带了code和state
如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE

// 获取地址栏中的参数
function getUrlParam(name) {var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");var r = window.location.search.substr(1).match(reg);// 对字符串值进行解码if (r != null) return unescape(r[2]);return null;
}function wxLogin(callback) {var appId = 'xxxxxxxxxxxxxxxxxxx';var oauth_url = 'xxxxxxxxxxxxxxxxxxx/oauth';var url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appId + "&redirect_uri=" + location.href.split('#')[0] + "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"var code = getUrlParam("code");if (!code) {window.location = url;} else {$.ajax({type: 'GET',url: oauth_url,dataType: 'json',data: {code: code},success: function (data) {if (data.code === 200) {callback(data.data)}},error: function (error) {throw new Error(error)}})}

第2,3步骤其实一般是在服务端进行操作的,第4步是当前端获取code之后,发送网络请求,用于向服务器获取openid,服务端进行2,3步骤操作后响应结果给客户端

2、通过code换取网页授权access_token(与基础支持中的access_token不同)

3、如果需要,开发者可以刷新网页授权access_token,避免过期

4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)

微信网页授权登录的方法相关推荐

  1. java ajax 微信网页授权_ajax 实现微信网页授权登录的方法

    AJAX 的 ajax 实现微信网页授权登录的方法 项目背景 因为项目采用前后端完全分离方案,所以,无法使用常规的微信授权登录作法,需要采用 ajax 实现微信授权登录. 需求分析 因为本人是一个ph ...

  2. ajax 微信code获取_ajax 实现微信网页授权登录的方法

    项目背景 因为项目采用前后端完全分离方案,所以,无法使用常规的微信授权登录作法,需要采用 ajax 实现微信授权登录. 需求分析 因为本人是一个phper ,所以,微信开发采用的是 EasyWeCha ...

  3. Spring Boot Security 多种登录方式集成配置思路及方法 账号用户名登录+微信网页授权登录

    概述 实现账号用户名+微信网页授权登录集成在Spring Security的思路 前情提要 本思路完全抛弃Spring Security的配置式账号密码登录模式,采用完全独立的Filter.Provi ...

  4. Springboot + Spring Security多种登录方式:账号用户名登录+微信网页授权登录

    一.概述 实现账号用户名+微信网页授权登录集成在Spring Security的思路,最重要的一点是要实现微信登录通过Spring Security安全框架时,不需要验证账号.密码. 二.准备工作 要 ...

  5. 微信网页授权登录java后台实现

    建议先阅读微信开发-网页授权登录官方文档: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_au ...

  6. SpringBoot + Spring Security多种登录方式:账号+微信网页授权登录

    一.概述 实现账号用户名+微信网页授权登录集成在Spring Security的思路,最重要的一点是要实现微信登录通过Spring Security安全框架时,不需要验证账号.密码. 二.准备工作 要 ...

  7. 微信公众号开发(一) 微信网页授权登录

    微信网页授权登录 前期准备 授权登录 获取微信数据 处理授权拒绝 前期准备 1.微信公众号开发,首先要搞一个公众号,开发阶段可以申请一个公众平台测试账号. (进入到微信公众公众平台,找到开发者工具,点 ...

  8. php微信授权ajax,ajax 实现微信网页授权登录

    项目背景 因为项目采用前后端完全分离方案,所以,无法使用常规的微信授权登录作法,需要采用 ajax 实现微信授权登录. 需求分析 因为本人是一个PHPer ,所以,微信开发采用的是 EasyWeCha ...

  9. php微信登录代理转发,PHP微信网页授权登录

    PHP微信网页授权登录 2018年04月10日 15:44:03阅读数:601 namespace Org\WeChat; /** * 微信授权相关接口 */ class Wechat { //高级功 ...

最新文章

  1. log4j日志记录级别是如何工作?
  2. Unity3D 多人协作开发 环境搭建 笔记(场景合并)
  3. 求1-10000所有的素数
  4. 【进展】冰箱运行监测系统:进展汇报,顺理思路
  5. openSUSE设置为路由服务器
  6. 隐马尔科夫模型原理解析
  7. DSS流媒体服务器搭建
  8. Spark调优 数据本地化调优
  9. FreeBSD重新加载rc.conf
  10. ToneBoosters Plugins Bundle for Mac(音频效果器插件包)
  11. ResNet----残差结构
  12. rk3568 4g 模块调试-ec20(移远模块)
  13. Office2010每次打开都出现配置进度窗体
  14. 专业抠图软件Super PhotoCut Pro for Mac
  15. Java:pdf文件中添加图片
  16. 如何理解运算放大器的增益带宽积-运放增益
  17. 安全防护工具之:ClamAV
  18. 【MySQL】COALESCE( )函数
  19. VB操作EXCEL方法汇总
  20. Linux固件开发 | 几分钟看透GPT分区

热门文章

  1. 欧拉函数|(扩展)欧拉定理|欧拉反演
  2. mysql老司机之路
  3. AliCoCo:阿里电商知识图谱核心技术揭秘 Alibaba E-commerce Cognitive Concept Net
  4. 最全的Java版本历史
  5. qt 文件大图标、列表等样式切换_跬步千里,厚积薄发:深度操作系统v15.9版正式发布...
  6. 1. Unity的下载与安装
  7. matlab报错之未定义与 ‘double‘ 类型的输入参数相对应的函数 ‘tf‘
  8. 怎样降低硕士论文重复率
  9. timeval 计时器
  10. SSM框架与Springboot框架的区别