開篇我先吐槽一下微信開發者的文檔,千年不更新。前端
寫文時間:2020年3月14日,先敲個時間,別那邊偷偷改了有人吐槽我。跨域
文檔中寫的拒絕和容許都會觸發回調,而後我測試拒絕的時候就不會觸發回調。安全
無用戶信息。這裏只是打個標記,並不在一進入頁面就強制受權。而是在用戶操做的時候提示用戶受權,由於這樣體驗比較好。
體驗上是能夠告訴用戶你瀏覽咱們是不須要你的信息的,而你在咱們平臺互動是須要註冊登陸的。微信
嘿嘿你猜我在作的是什麼。cookie
我看以前代碼是有拒絕回調邏輯的,並且我也在文檔中確認過了。
可是我在測試的時候發現,拒毫不會觸發回調,成功的時候邏輯是對的。微信開發
那麼在這個場景下,咱們怎麼顯示呢?測試
由於如今微信管得太嚴了,怕被微信拉黑,因此考慮使用其餘域名作分享外鏈。spa
可是咱們又但願能夠在微信受權登陸一下,這樣這個需求就來了。code
微信中綁定的安全域名和回調域名爲 a.com
,
咱們分享到微信打開的域名爲 b.com
。blog
首先咱們要明確幾個要點。
cookie
。a.com
和 b.com
是跨域的。a.com
是沒法把 cookie
寫到 b.com
下的。b.com
也沒法讀取 a.com
的 cookie
。好了基於上面的要點。咱們開始實現功能。
a.com/wxauth
會觸發微信受權,咱們默認用戶贊成受權cookie
。這個時候咱們就能拿到用戶登陸信息。CORS
來使用,a.com
的接口容許 b.com
的頁面發出請求。cookie
的。這個時候咱們能夠配置 withCredentials
來達到攜帶cookie的目的。基於上面的跨域方案,咱們 b.com
下面沒有任何 cookie
,只有頁面。
咱們全部的請求和 cookie
都放在 a.com
。
上個方案是全部請求都走 a.com
。
這個方案是全部請求都走當前域名。我網上看了幾個別人作好的,也都是這種方案。
這種方案其實能夠把 a.com
理解成第三方平臺。