带cookie的CORS

Posted on Sun 12 March 2017 in Frontend

关于

不得不说,这其实是一个非常悲惨的故事,作为自己25岁生日的礼物,稍微惨了一点。

最近一时兴起,用Vue.js写了一个很简单的前端项目,也算是希望能在离校之前给自己的学校留下一点东西。

起因

之前一切都很顺利,加feature,修bug,都没什么太大的困难,直到开始着手解决认证问题。

受限于各方面的限制,我写的前端所服务的后台服务是不能直接在校外访问的,然而不管是在校生还是已毕业校友都有在校外访问的需要,因此折中一下,这个服务需要认证才能访问。 认证是怎么做的呢?是一个比较传统的方案:先重定向到一个集中认证服务,登录完之后返回后台服务所在的域名,通过后台服务与认证服务交互,确认用户的登录情况,记录用户的身份,设置session,之后用cookie来识别用户的登录情况。

这部分其实与我的前端App没什么关系,因为不管是认证服务还是后台服务都是已经写好在运行的,我只要在访问后台服务的时候捕捉错误信息,正常跳转到认证服务,等待后台服务把用户重定向回来就行,因此与我来说看上去并没有什么关系。

然而问题在于,运行环境的服务器不由我管理,我也不愿意在运行环境下调试,因此我在自己的VPS和域名下部署了一套staging环境用于线上测试,自己开发则在本机用localhost开发,拜托运行的老师在nginx里加了CORS的HTTP headers,一切挺顺利,看上去也很合理,然而在折腾cookie的时候却出了问题。

兴起

虽然没有什么必须要用 …


Continue reading