微信网页授权登陆的一次查错误经历

最近一直在研究围绕微信平台的相关开发,其中踩到了不少坑,特来此记录一番,也方便交流。真想吐槽为什么微信弄个开放平台还要加一个公众平台呢?两边文档还不一样。类似的功能还得写两次。上网查了下,果然有人在喷微信文档多次误导第三方sdk写错了:)

上次接到一个任务,PC网站要支持微信第三方登陆功能。一直以为是在服务号那边做相应的配置和处理,看的是这边的文档 。尝试了多次都是提示scope没有相关权限,授权地址格式如下:

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

后面去分析了下第三方网站的微信授权地址,正确的格式如下:

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

上面是我遇到的第一个坑,糗大了:) .微信就是比较特别,其他SNS账户叫client_id 微信这边叫appid, 还要在URL末尾搞个#wechat_redirect,刚开始也没太在意它的作用,为了保持代码的一致整洁,授权地址里面的client_id我没有去掉,这样一来,URL里面的参数个数实际上比微信需要的多一个,这样也为后面的BUG埋下了伏笔。

微信开放平台的文档在这。整体来说比较顺利,网站在这里:爱玩儿HTML5.欢迎体验。

PC端微信登陆做好了,接下来是微信浏览器里面的微信登陆。如果没有对PC端微信登陆和微信环境下登陆做区分,在微信环境下点击授权登陆,你将看到的是一个扫码页面,类似这样:

在移动端扫码,这样的体验很糟糕。一些朋友想到的可能是跳过扫码的页面,直接让用户点击确认授权的页面,殊不知,PC端扫码也是微信授权流程的一部分,这个扫码并确认的过程就是获取授权码code的过程。有了之前的经验,我知道必须在公众号后台来完成授权登陆的过程。授权地址如下:

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

忘记 把client_id去掉了,导致跳转后页面一片空白,也没有提示错误信息。经过多种尝试,确认appid是没问题的,redirect_uri也是合法域名下的地址。问题得不到解决,把想过的法子都尝试了,只好把第三方授权地址拷贝出来看,严格按照微信文档的GET参数顺序和个数来填写,问题得到了解决:)。

这里主要有两个问题,一个问题是多了一个client_id,另外一个问题是URI参数的顺序问题。必须严格按照微信官方的格式来。

最后想说以下URL里面#号参数的作用,#可以为网页位置指定标识符,作为超链接标签<a>的一个锚点。#并不是HTTP协议的内容。单单改变#后的部分,浏览器只会滚动到相应位置,不会重新加载网页。

时间: 2024-08-05 23:59:32

微信网页授权登陆的一次查错误经历的相关文章

微信开发微信网页授权登陆不成功的问题

最近一直在研究围绕微信平台的相关开发,其中踩到了不少坑,特来此记录一番,也方便交流.真想吐槽为什么微信弄个开放平台还要加一个公众平台呢?两边文档还不一样.类似的功能还得写两次.上网查了下,果然有人在喷微信文档多次误导第三方sdk写错了:) 上次接到一个任务,PC网站要支持微信第三方登陆功能.一直以为是在服务号那边做相应的配置和处理,看的是这边的文档 .尝试了多次都是提示scope没有相关权限,授权地址格式如下: [javascript] https://open.weixin.qq.com/co

微信公众号开发简单的网页授权登陆获取用户基本信息

由于业务需要,近期在做微信公众号开发,其中一个模块是微信用户点击个人中心访问可以得到次微信用户的头像昵称国家省份等基本信息. 但由于业务需求,这块功能暂时用不上了,但这功能的实现毕竟是自己花费几天时间搞出来的,觉得以后会用的上,暂且记录一下实现过程. 首先:获取用户信息的过程属于微信网页授权登陆,再做这一块之前请先阅读微信开发文档以熟悉基本的开发过程: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842 微信开发文档

微信公众平台,微信网页授权,redirect_uri参数错误,解决方法!

刚才在做微信网页授权的时候,发生一个错误!!!微信网页授权redirect_uri 参数错误! 遇到问题,第一时间应该做的就是查看官网微信公众平台的技术文档. 微信网页授权 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域名的说明 1.在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的"开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息"的配置选项中,修改授权回调域名

微信网页授权认证获取用户的详细信息,实现自动登陆-微信公众号开发干货

原创声明:本文为本人原创作品,绝非他处转账,转载请联系博主 从接触公众号到现在,开发维护了2个公众号,开发过程中遇到很多问题,现在把部分模块功能在这备案一下,做个总结也希望能给其他人帮助 工欲善其事,必先利其器,先看看开发公众号需要准备或了解什么 web开发工具:官方提供的开发工具,使用自己的微信号来调试微信网页授权.调试.检验页面的 JS-SDK 相关功能与权限,模拟大部分 SDK 的输入和输出.下载地址:web开发工具下载 开发文档:https://mp.weixin.qq.com/wiki

微信网页授权

微信网页授权 1 以下位置是微信网页授权 2 登陆微信公众平台测试号,修改"网页授权获取用户基本信息"选项 3 定义授权页面,用户打开此页面,则会跳转到 redirect_uri/?code=CODE&state=STATE,可以获取到code https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.c

手把手实现微信网页授权和微信支付,附源代码(VUE and thinkPHP)

wechat github 概述 公众号开发是痛苦的,痛苦在好多问题开发者文档是没有提到的,是需要你猜的. 在开发过程中翻了好多的文档,都是说明其中的一部分问题的,很费时间,所以在此总结大体过程.我们模拟的是一个支付的商城,在实现购买过程中基本是把微信公众号最主要模块实现了,其余的功能我们没有涉及,但应该是触类旁通的. 我们叙述的过程是按开发流程进行叙述的,不会是按照开发文档的形式叙述,希望您能结合微信的开发文档一起阅读,当然在流程中我们会提醒你阅读的部分 目录 概述 [解决的问题] [前端技术

OAuth 2.0及微信网页授权

理解OAuth 2.0 by 阮一峰 微信网页授权

Android App实现微信第三方授权登陆

下载官方SDK 在微信开放平台,下载微信的官方SDK,以及签名生成工具. 地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&token=&lang=zh_CN 2.导入官方SDK 把Android开发工具包里面的libammsdk导入到你的项目中如下图: 这里要注意的是,应用签名不是在Ecl

微信网页授权获取用户基本信息

微信公众号可以通过微信网页授权机制,来获取用户基本信息,可以用于微信登录功能 关于网页授权的两种scope的区别说明 1.静默授权:以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的.用户感知的就是直接进入了回调页(往往是业务页面) 2.显示授权:以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的.但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的