我制作了一個帶有會話 cookie 登錄系統的 Web 應用程式。使用 cookie 時,它??們會在幾秒鐘內過期,將用戶從他們所在的任何服務中注銷。當我打開我的應用程式時,我偶爾會在終端中收到一條警告,指出UserWarning: The session cookie domain is an IP address. This may not work as intended in some browsers. Add an entry to your hosts file, for example "localhost.localdomain", and use that instead.我正在 Heroku 上托管這個應用程式,所以我不認為編輯我的本地檔案會有所幫助,但如果有辦法在 Heroku 上解決這個問題,那就太好了。我收到的另一條錯誤訊息來自網站本身的控制臺,內容如下:
Cookie“會話”將很快被拒絕,因為它的“SameSite”屬性設定為“無”或無效值,沒有“安全”屬性。要了解有關“SameSite”屬性的更多資訊,請閱讀https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite
我將 Web 應用程式中的 Session cookie 設定為:
app.config["SESSION_FILE_DIR"] = tempfile.mkdtemp()
app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "filesystem"
app.config["SESSION_COOKIE_SECURE"] = True
app.config["SESSION_COOKIE_SAMESITE"] = "None"
Session(app)
但這并沒有解決我的問題,并且兩個錯誤都不斷出現。如果有任何方法可以手動設定 SameSite 和 Secure,那就太好了。我不知道為什么會發生這種情況并且它破壞了網站,如果有人有任何建議,將不勝感激!
uj5u.com熱心網友回復:
您需要使用域名來訪問服務 ( https://domain.xxx/ ) 而不是 IP 地址 ( https://123.123.123.213 )。
為避免很多痛苦和錯誤,您應該以使用 HTTPS 為目標,尤其是在您希望 cookie 正常作業的情況下。在大多數情況下,Secure和SameSite屬性都需要 HTTPS 才能正常作業。要使 HTTPS 正常作業,您需要一個域名和一個適當的證書。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/405685.html
標籤:
