[英]How to send cookie through redirection in golang?
我正在開發一個 api,在我對用戶進行身份驗證后,我想將他重定向到主頁,傳遞一個包含 jwt 令牌的 cookie。
我正在使用http.Redirect
函數,並且已經嘗試了以下操作:
將 cookie 設置為 ResponseWriter 並通過重定向函數發送它,但它所做的一切都是在身份驗證頁面上設置一個 cookie,但它不會通過重定向傳遞它,因此主頁不會收到它。
將cookie添加到我第一次使用處理函數接收的請求中,並通過重定向函數重新發送。 這根本行不通。
創建一個新請求並再次通過重定向功能發送它。 這也行不通。
這是我與http.SetCookie
函數一起使用的代碼,它是效果最好的一個:
strToken := CreateToken(user)
urlAuthRedirect := "https://komfy.now.sh"
cookie := http.Cookie{
Name: "jwt-token",
Value: strToken,
}
http.SetCookie(resp, &cookie)
http.Redirect(
resp, // ResponseWriter
req, // Request
urlAuthRedirect,
http.StatusSeeOther)
如何將 cookie 從身份驗證端點傳遞到主頁?
如果設置的 cookie 標頭未指定路徑,則瀏覽器會將路徑默認為請求的路徑。 要使 cookie 在整個站點中可用,請將路徑明確設置為“/”。
cookie := http.Cookie{
Name: "jwt-token",
Value: strToken,
Path: "/",
}
Cookie 不能跨域設置。 如果問題中的身份驗證處理程序不是從域 komfy.now.sh 提供的,則無法直接設置 cookie。 解決方法是通過查詢參數將令牌發送到目標域上的端點。 該端點的處理程序設置 cookie 並可能重定向到最終 URL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.