首頁 > 後端開發 > Golang > 主體

如何在 Go 中管理經過驗證的 HTTP 用戶端請求的 Cookie?

Susan Sarandon
發布: 2024-11-10 07:15:02
原創
978 人瀏覽過

How to Manage Cookies for Authenticated HTTP Client Requests in Go?

來自Go 的經過身份驗證的HTTP 用戶端請求

在發出需要身份驗證的HTTP 客戶端請求的上下文中,後續請求失敗時會出現常見問題出現401 拒絕存取錯誤。讓我們探索解決此問題的 Golang 解決方案。

在提供的程式碼片段中,用戶端使用 HTTP 基本驗證成功與伺服器進行身份驗證,但在後續請求檢索使用者詳細資訊時面臨挑戰。為了解決這個問題,解決方案在於建立一個自訂的 cookie jar。

Golang 的 HTTP 用戶端不會自動處理 cookie 管理。需要 cookie jar 來儲存和管理跨 HTTP 請求的 cookie。下面的程式碼定義了自訂cookie jar 實作:

type myjar struct {
    jar map[string] []*http.Cookie
}

func (p* myjar) SetCookies(u *url.URL, cookies []*http.Cookie) {
    p.jar [u.Host] = cookies
}

func (p *myjar) Cookies(u *url.URL) []*http.Cookie {
    return p.jar[u.Host]
}
登入後複製

在main 函數中,我們初始化自訂cookie jar 並將其指派給客戶端的Jar 欄位:

    jar := &myjar{}
    jar.jar = make(map[string] []*http.Cookie)
    client.Jar = jar
登入後複製

透過合併透過這些更改,Golang 可以成功地跨經過身份驗證的HTTP 請求管理cookie。現在,用戶端將自動將與經過驗證的會話關聯的 cookie 附加到後續請求,確保正確處理詳細資訊請求,而不會出現 401 錯誤。

以上是如何在 Go 中管理經過驗證的 HTTP 用戶端請求的 Cookie?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板