您的位置:首页 > 运维架构 > 网站架构

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

2016-05-22 09:51 585 查看
  按照官方给出的流程进行开发是可以顺利进行授权等操作的。

  但我要说明一下 我开发的项目中 由于网站不是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得话 就要注意域的有效性了。

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: