簡體   English   中英

如何通過golang中的重定向發送cookie?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM