我正在創建一個 web 應用程式,并使用帶有 cookie 的 rails 會話來驗證用戶。在 Chrome 桌面瀏覽器上,它沒有問題。但是,我最近將應用程式(一個 rails api 和一個單獨的前端反應應用程式)部署到 Heroku,并且我一直在登錄桌面 Safari、移動 Safari 和移動 Chrome 時遇到問題。
我做了一些挖掘,我相信我的 cookie 設定得很好,但默認情況下,Safari 中會檢查“防止跨站點跟蹤”設定。取消選中此項后,它適用于所有 Safari 版本。如果我想在我的平臺上使用真正的用戶,這不是一個可行的解決方案,我將如何解決這個問題?是否可以通過更改我當前的 cookie 配置來修復,或者我是否必須做一些更激烈的事情,比如實作一些類似 JWT 的身份驗證?我是新手,不精通身份驗證方法,因此一些特定的方向會非常有幫助。如果需要,我可以發布代碼片段,但我有一個非常典型的 rails cookie 設定。謝謝。
uj5u.com熱心網友回復:
實際上,您可以查看涉及持久令牌的解決方案(基于 JWT、oauth 流等)。無論您的客戶端瀏覽器的“第三方 cookie”設定如何,這都將始終有效。
但是,我建議您先看看您的 API 以及您的客戶端如何與您的后端互動。在大多數基本的應用程式設定中,您可以使用第一方 cookie,它們永遠不會被瀏覽器阻止。這是希望您的應用程式依賴第三方 cookie 嗎?如果答案是肯定的(例如:因為您的 API 從與您的應用程式完全不同的域中提供,則轉到第一個選項。否則,請嘗試檢查您是否無法從與應用程式相同的域中提供 API , 如果您想繼續使用 cookie。
uj5u.com熱心網友回復:
我會說最好保留會話 cookie,并且要啟用此功能,您需要確保您的 api 和前端來自同一個域 - 這些可以是同級域,例如www.example.com和 api.example.com .
您可以使用 JWT,但它會解決一個問題并產生許多其他問題。例如,在瀏覽器中處理的 JWT 被認為不如會話 cookie 安全。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/364624.html
上一篇:Rubyonrails列比較
