《微信网页授权》专题

1 第一步:用户同意授权,获取code

2 第二步:通过code换取网页授权access_token

3 第三步:刷新access_token(如果需要)

4 第四步:拉取用户信息(需scope为 snsapi_userinfo)

5 附:检验授权凭证(access_token)是否有效

1,获取code

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

需要参数:APPID,scop=snsapi_userinfo

接收HttpRequest的code参数:REDIRECT_URI

2,获取code后,请求以下链接获取access_token

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

需要参数:APPID 和 SECRET,以及CODE

返回json数据包:

{

"access_token":"ACCESS_TOKEN",

"expires_in":7200,

"refresh_token":"REFRESH_TOKEN",

"openid":"OPENID",

"scope":"SCOPE"

}

3,拉取用户信息

http:GET(请使用https协议) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

需要参数:ACCESS_TOKEN和OPENID

返回json数据包:

{

"openid":" OPENID",

"nickname": NICKNAME,

"sex":"1",

"province":"PROVINCE",

"city":"CITY",

"country":"COUNTRY",

"headimgurl":      "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",

"privilege":[ "PRIVILEGE1" "PRIVILEGE2"    ],

"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"}

方式二:

1,

获取code

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

需要参数:APPID,scop=snsapi_base

接收HttpRequest的code参数:REDIRECT_URI

以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

2,获取code后,请求以下链接获取openid

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

需要参数:APPID 和 SECRET,以及CODE

返回json包:获取openid存储

3,获取access_token    https请求方式: GET

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

String actokenUrl="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";

actokenUrl=actokenUrl.replaceAll("APPID", APPID).replaceAll("APPSECRET", APPSECRET);

参数:APPID和APPSECRET

返回:access_token

4,获取获取用户基本信息(UnionID机制) https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

String useInfoUrl="https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN";

useInfoUrl=useInfoUrl.replaceAll("ACCESS_TOKEN", ACCESS_TOKEN).replaceAll("OPENID", openid);

灵活应用需要依赖的技术:https请求封装、gson和java类转换或JSONObject

微信网页授权的2种方式相关推荐

  1. 微信开发网页授权的两种方式

    第一步在微信公众平台中找到网页授权 然后再填写授权回调页面,这里的页面如同手册里面一样  以xxx.xxxxx.com 即可  而且此处的域名一定要和代码中回调地址在同一个域名之下. 关于网页授权的两 ...

  2. 微信公众号开发__微信网页授权并获取用户基本信息(是否关注公众号、头像、昵称等)

    本人最近要做微信公众号网页开发的项目,其中有个需求是判断用户是否关注公众号,由于之前没有接触过微信授权的东西,所以提前开始做调研.在度娘上看了好多博客.百度知道.百度经验.知乎问答等,还仔细阅读了微信 ...

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

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

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

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

  5. Java微信公众号开发微信网页授权之前端传递code方式获取用户信息

    本片博客讲解的网页授权分为两步,前端先传递backUrl(回调地址)到后台网页授权接口,该接口拿到回调地址后组装授权连接,重定向到前端页面,前端页面截取Code,传入后端获取用户信息方法,获取用户信息 ...

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

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

  7. android user-agent iso-8859-1,微信网页授权,错误40163,ios正确,安卓错误?

    2018-07-18:一年时间过去了,我又回来填自己挖的坑了!! 2017年7月,我遇到了这个问题,当时在这里提了问,后来又跟踪了两天,也没彻底搞懂,反正时好时坏,,后来自己主要精力放在H5+开发上, ...

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

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

  9. Java微信公众平台开发(十六)--微信网页授权(OAuth2.0授权)获取用户基本信息

    转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静 ...

最新文章

  1. 矩阵分解(rank decomposition)文章代码汇总
  2. 应用层的AIDL用法(原)
  3. 3481. 阶乘的和
  4. 关于CSS预处理器(less,sass)
  5. 如何组织软件模块的代码结构?
  6. 网络不稳定的原因_关键词排名波动原因,如何解决网站排名不稳定!
  7. oracle 判断字段相等,但类型不同引起的性能问题
  8. drools规则引擎中易混淆语法分析_相互触发导致死循环分析
  9. 计算机组成原理课后习题答案第五版
  10. 基于Java的进销存管理系统 附:源码课件
  11. MAVEN setting.xml配置文件详解
  12. SVN服务器下载与安装
  13. 压电式雨量传感器介绍说明
  14. arduino触须传感器使用方法
  15. Python 时间标准化
  16. E06 【买衣服】Maybe you need a bigger size
  17. docker安装kong和konga详细说明
  18. 《潜规则》吴思-摘抄
  19. 图解B+树并和B-树特点对比总结
  20. 【工具配置】【Windows】Cuda和cudnn安装教程(保姆级)

热门文章

  1. 工业互联网平台:将为“补链”“优链”“强链”提供有力保障
  2. ansj词典加载及简洁分词过程
  3. CPU 64位和32位
  4. 夏惊鸣:2017,战略转型的新路径
  5. 这个发现是否会是RSA算法的BUG、或者可能存在的破解方式?
  6. Excel转xml简单方法
  7. 虚拟化相关概念与技术整理(1)——关于VMM类型
  8. ubuntu 16.04 镜像下载(国内开源镜像站)
  9. visio消除直线连接圆弧
  10. mysql安装卡在最后一步解决方案(附带万能安装方案)