按照官方給出的流程進行開發是能夠順利進行受權等操做的。html
但我要說明一下 我開發的項目中 因爲網站不是https協議的 因此在微信的受權經過官方給於的js實現二維碼顯示時遇到如下問題:api
第一個問題:安全
官方步驟微信
<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>session
var obj = new WxLogin({app
id:"login_container", 網站
appid: "", spa
scope: "", code
redirect_uri: "",orm
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得話 就要注意域的有效性了。