记录一次cookie导致登录失败的惨案
生活随笔
收集整理的這篇文章主要介紹了
记录一次cookie导致登录失败的惨案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
現象描述:
前端登錄成功后并沒有從后端那里拿到登錄信息,換句話說登錄服務告訴我們登錄成功了,但是后端卻說我們沒有登錄成功。
背景:
因為前后端分離,所以前后端項目部署在兩個子域名下。
因為要打通登錄態,需要調用登錄服務,登錄服務會在 .baidu.com 下寫入登錄態。
前端域名:xxx.baidu.com
后端域名:yyy.baidu.com
原因:
后端拿到的登錄態和登錄服務下發的登錄態不統一。
后端也記錄了一次登錄態在 yyy.baidu.com 下。
出現這種情況一般是登錄態失效了導致的,第一次登錄的時候瀏覽器沒有任何登錄態,登錄的時候是沒問題的。登錄過一次之后登錄態失效,也就是登錄服務下發的登錄態失效了,我們要跳轉登錄服務,然后登錄服務刷新了瀏覽器 .baidu.com 下的登錄態,但是yyy.baidu.com下失效的登錄態還存在,請求接口yyy.baidu.com的時候后端接收到的是失效的登錄態,所以總是說登錄失敗。
解決方法:
后端不要記錄登錄態,或者發現登錄態失效清除掉自己記錄的登錄態即可。
記錄該問題的原因:
這個問題不好查的原因是前端通過開發者工具只能看到xxx.baidu.com和.baidu.com下的cookie。也沒想到去看yyy.baidu.com 下的cookie,所以比較謎。
最后仔細分析請求發送所帶的cookie發現同一個key居然出現兩次,才根據這條線索有所收獲。
總結
以上是生活随笔為你收集整理的记录一次cookie导致登录失败的惨案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS相关知识总结(一)
- 下一篇: ES6中块级作用域下的函数声明