开篇我先吐槽一下微信开发者的文档,千年不更新。前端
写文时间: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
理解成第三方平台。