网站首页 > 资源文章 正文
微信公众号授权登录操作前提必须注册微信公众平台账号,注意的是订阅号不支持授权登录操作,因此对于个人开发者注册的订阅号是无法实现的,必须注册企业号的微信平台账号而具体注册流程就不详细介绍了,有什么疑问可去微信公众号平台查看具体的文档。
接下来讲述一下具体的微信授权登录流程,打开微信开发文档官网(https://mp.weixin.qq.com/wiki),“微信网页开发”中找到“微信网页授权”,其中详细介绍了微信授权登录实现,如图:
AppId和AppSecret参数见下图:
网页授权流程分为四步:
1、引导用户进入授权页面同意授权,获取code
2、通过code换取网页授权access_token(与基础支持中的access_token不同)
3、如果需要,开发者可以刷新网页授权access_token,避免过期
4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)
步骤一:首先需要获取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、redirect_uri、response_type、scope、state,具体说明如下图:
注意:当scope为snsapi_base(静默授权) ,就不会弹出授权页面;而scope为snsapi_userinfo(手动授权)时,是弹出授权页面的,可以获取用户的相关信息。
微信授权有两种网页授权方式
第一种静默授权:不会给登录用户任何提示直接返回用户code,但如果登录用户存在关注公众号的情况下,无法拿到登录用户的全部信息
以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
第二种手动授权:弹出授权页面,登录用户点击确定后可获取登录用户的信息
以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
参考案例:
静默授权 https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
手动授权 https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
步骤二:通过code值获取网页授权access_token票据
登录用户每次授权所携带的code都不一样,code只能使用一次,5分钟自动过期。
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
其中参数appid、secret、code、grant_type,具体说明如下图:
步骤三:刷新access_token(如果需要)
由于access_token拥有较短的有效期,当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为30天,当refresh_token失效之后,需要用户重新授权。
步骤四:拉取用户信息(需scope为 snsapi_userinfo)
获取用户信息网页授权作用域为snsapi_userinfo,此时开发者可以通过access_token和openid获取用户信息。具体链接如下:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
其中参数access_token、openid、lang,具体说明如下图:
具体实现微信公众号授权登录代码,通过填写的回调url进入我们的后台登录调用方法
源码参考资料:http://blog.yoodb.com/yoodb/article/detail/1324
如果登录成功授权之后会返回正确的json格式数据,反之失败返回相对应的错误码。进群248148860,对互联网技术感兴趣的朋友们,欢迎关注公众号“优哉游哉”。涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。
猜你喜欢
- 2024-09-21 基于JavaEE——微信网页(一)角色的基本说明
- 2024-09-21 移动开发:SpringBoot整合微信小程序登录
- 2024-09-21 java使用API在微信开发者平台接入一个机器人回复
- 2024-09-21 微信公众平台开发java版之公众平台注册,设置,登录(第一课)
- 2024-09-21 基于微信小程序的游戏论坛设计与实现-计算机毕业设计源码+LW文档
- 2024-09-21 用Java搭建微信公众号生成access_token
- 2024-09-21 Jeewx-api 1.4.9 版本发布—第三方APP开发SDK,支持微信、钉钉等
- 2024-09-21 SpringBoot实战之—与微信小程序的通信(附源码)
- 2024-09-21 Joolun微信小程序源码功能一览表(Java)
- 2024-09-21 JAVA代码实现的微信公众号简单推送消息功能程序,附代码
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)