程序员技术干货PHP

网页微信第三方登录-redirect_uri参数错误

2017-09-03  本文已影响6546人  小七君
redirect_uri参数错误

这几天在折腾微信第三方登录的事情。期间一直报redirect_uri 参数错误,搜索了各种文章,试了urlencode等各种办法,都没有解决。最后在同事的帮忙下,才搞定。路程曲折,这里记录一下,也好让大家不要走这些坑。

【第一步】:在微信开放平台注册开发者账号并申请网页应用。

微信开放平台
授权回调域

【敲黑板重点来了】授权回调域一定要写网站的域名。不要加https:// http://这些前缀。如:www.sciparty.com

【第二步】:按照网站应用微信登录开发指南拼接网站的链接地址。如果显示二维码则调用成功。

第三方使用网站应用授权登录前请注意已获取相应网页授权作用域(scope=snsapi_login),则可以通过在PC端打开以下链接:https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
若提示“该链接无法访问”,请检查参数是否填写错误,如redirect_uri的域名与审核时填写的授权域名不一致或scope不为snsapi_login。
参数说明

参数 是否必须 说明
appid 应用唯一标识
redirect_uri 请使用urlEncode对链接进行处理
response_type 填code
scope 应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即可
state 用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验

返回说明
用户允许授权后,将会重定向到redirect_uri的网址上,并且带上code和state参数。


【敲黑板重点来了】这里的redirect_uri可以是你网站下的任何页面(不局限于授权回调域配置的域名),但是一定要在前面加上http://,并且使用urlencode编码。如:http://www.sciparty.com/weixinlogin。例如下面的链接地址:
https://open.weixin.qq.com/connect/qrconnect?appid=wxf43a4fc291843e43&redirect_uri=http%3a%2f%2fwww.sciparty.com%2fweixinlogin&response_type=code&scope=snsapi_login#wechat_redirect

调用成功

总结:一定要注意前面的两次敲黑板。不要因为配置问题浪费时间。

上一篇下一篇

猜你喜欢

热点阅读