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

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

請求令牌時獲取 nil 而不是 *jwt.Token

請求令牌時獲取 nil 而不是 *jwt.Token

Go
寶慕林4294392 2023-07-10 10:42:36
我正在嘗試使用令牌來驗證用戶角色,但出現錯誤:接口轉換:interface {} 為 nil,而不是 *jwt.Token我做了類似的請求用戶 ID 的操作并且它有效,但在這里我似乎無法獲取令牌。代碼:func AdminRoutes(next echo.HandlerFunc) echo.HandlerFunc {    return func(c echo.Context) error {        u := c.Get("user").(*jwt.Token)        claims := u.Claims.(jwt.MapClaims)        for _, item := range routes[claims["role"].(string)] {            if c.Request().RequestURI == item && claims["role"] != "admin" {                return c.JSON(http.StatusUnauthorized, "Role not suitable for function.")            }        }        return next(c)    }}我嘗試過c.Set()令牌,但c.Get()之后不起作用。
查看完整描述

1 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

返回值,以及您所做的就是對值執行類型斷言c.Get("user"),這就是發生錯誤的原因。nilnil


c.Get()我建議在斷言之前進行一些檢查。


if temp := c.Get("user"); temp != nil {

    u := temp.(*jwt.Token)

    claims := u.Claims.(jwt.MapClaims)

    for _, item := range routes[claims["role"].(string)] {

        if c.Request().RequestURI == item && claims["role"] != "admin" {

            return c.JSON(http.StatusUnauthorized, "Role not suitable for function.")

        }

    }

}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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