亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang REST API - 從經過驗證和解碼的令牌傳遞信息

Golang REST API - 從經過驗證和解碼的令牌傳遞信息

Go
達令說 2022-10-10 20:01:27
我已經設置了中間件來驗證并從 JWT 令牌中提取聲明(使用https://github.com/golang-jwt/jwt)。我現在的問題是我想以某種方式將該信息傳遞給路由處理函數,以便它可以檢查存儲在令牌中的權限。我很難在這方面找到好的資源,但我看到了兩個建議,一個是在驗證后使用 REDIS 存儲令牌信息,另一個是使用 http.Request 上下文。我寧愿不使用 REDIS,所以我認為它真的只給我留下了 Context?盡管我正在努力尋找關于整個上下文的體面資源,以及此類用例的上下文。另一種選擇是讓中間件驗證令牌,然后在處理程序函數本身內提取 JWT 聲明而不再次驗證令牌?任何幫助/鏈接/建議將不勝感激......我知道在 Go 中有很多方法可以給貓剝皮,但我寧愿遵循最佳實踐。
查看完整描述

1 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

這是一個很好的教程Contexthttps ://go.dev/blog/context 。之前也有關于上下文和中間件的 SO 討論,例如How to pass context in golang request to middleware

您可以使用context.WithValue將任意鍵-> 值映射添加到上下文,然后是請求的WithValue方法:

它可以很簡單:

func middleware(rw http.ResponseWriter, req *http.Request, next http.Handler) {
    ctx := context.WithValue(req.Context(), "key", "value")
    next.ServeHTTP(rw, req.WithContext(ctx))}


查看完整回答
反對 回復 2022-10-10
  • 1 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號