第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

向 Echo 路由中間件傳遞參數(shù)

向 Echo 路由中間件傳遞參數(shù)

Go
紫衣仙女 2023-07-26 17:44:31
如何在 Echo 中向中間件傳遞參數(shù)?有一個例子說明了我想要實現(xiàn)的目標。func (h *handlers) Check(pm string, next echo.HandlerFunc) echo.HandlerFunc {    return func(c echo.Context) error {        if pm == "test" {            return next(c)        }        return echo.NewHTTPError(http.StatusUnauthorized, "")    }}我想這樣設(shè)置中間件:route.Use(middleware.Check("test input"))
查看完整描述

1 回答

?
慕尼黑5688855

TA貢獻1848條經(jīng)驗 獲得超2個贊

您可以使用閉包將參數(shù)傳遞給中間件,如下所示:


func (h *handlers) Check(adminName string) echo.MiddlewareFunc {

    return func(next echo.HandlerFunc) echo.HandlerFunc {

        return func(c echo.Context) error {

            if c.QueryParam("username") == adminName {

                return next(c)

            }

            return echo.NewHTTPError(http.StatusUnauthorized, "")

        }

    }

}

這里中間件檢查查詢參數(shù)是否username與中間件參數(shù)匹配adminName。在這個例子中,任何人只要知道正確的用戶名就可以獲得管理員狀態(tài),因此沒有安全性。您可能想改用 BasicAuth 或 JWT 中間件,它們已經(jīng)可用于echo. 看一下echo/middleware/basic_auth.go更好的例子。


您可以按照問題中的方式設(shè)置中間件:


route.Use(middleware.Check("admin"))


查看完整回答
反對 回復(fù) 2023-07-26
  • 1 回答
  • 0 關(guān)注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號