网站第三方登录--微信登录(填坑)

Posted LazyCat_Ky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网站第三方登录--微信登录(填坑)相关的知识,希望对你有一定的参考价值。

  按照官方给出的流程进行开发是可以顺利进行授权等操作的。

 

  但我要说明一下 我开发的项目中 由于网站不是https协议的 所以在微信的授权通过官方给于的js实现二维码显示时遇到以下问题:

第一个问题:

官方步骤

步骤1:在页面中先引入如下JS文件(支持https):

<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>

 

步骤2:在需要使用微信登录的地方实例以下JS对象:

  var obj = new WxLogin({

                id:"login_container", 

                appid: "", 

                scope: "", 

                redirect_uri: "",

                state: "",

                style: "",

                 href: ""});

 参数说明:

id          是    第三方页面显示二维码的容器id
appid    是    应用唯一标识,在微信开放平台提交应用审核通过后获得
scope    是    应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即可
redirect_uri    是    重定向地址,需要进行UrlEncode
state        否    用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验
style        否    提供"black"、"white"可选,默认为黑色文字描述。详见文档底部FAQ
href         否    自定义样式链接,第三方可根据实际需求覆盖默认样式。详见文档底部FAQ

问题来了 href其实只支持https协议的连接, 而http协议的连接是无法支持的,因为该接口调用的是微信的https协议获取的二维码,在https中调用http是被认为不安全的。

 

第二个问题:

  在使用了第一种弹出新页面后授权后 刷新的父级页面,这里如果需要用到session得话 就要注意域的有效性了。

  

 

以上是关于网站第三方登录--微信登录(填坑)的主要内容,如果未能解决你的问题,请参考以下文章

不懂第三方网站App如何接入微信登录怎么办?这里我详解单点登录之第三方微信登录(建议收藏)

微信第三方登录接口流程

什么是第三方登录,第三方登录如何选择

dedecms织梦第三方登录插件-QQ登录微博登录微信登录

第三方登录:微信扫码登录(OAuth2.0)

微信qq,新浪等第三方授权登录的理解