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

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

Golang Echo - 中間件在不返回下一個時仍在執(zhí)行下一個路由

Golang Echo - 中間件在不返回下一個時仍在執(zhí)行下一個路由

Go
慕碼人2483693 2022-10-24 16:09:48
我正在嘗試使用身份驗(yàn)證中間件來檢查用戶當(dāng)前是否已連接并且在執(zhí)行路由之前是否有會話,但似乎我的中間件并沒有停止路由的執(zhí)行并執(zhí)行下一個路由,即使我沒有調(diào)用下一個()。這是我的代碼:func checkUserAuth(next echo.HandlerFunc) echo.HandlerFunc {    return func(c echo.Context) error {        if err := next(c); err != nil {            c.Error(err)        }                currSess, _ := session.Get("session", c)                if userId, ok := currSess.Values["user_id"].(string); ok {            fmt.Println("User is currently connected with id", userId);            return next(c)                    }         // Even if middleware reaches here, it still execute the next route, why?        return echo.ErrUnauthorized    }}func main() {    e := echo.New()    e.Use(checkUserAuth)    e.Use(session.Middleware(store))    e.GET("/", func(c echo.Context) error {        sess, _ := session.Get("session", c)                fmt.Println("got session" , sess.Values["user_id"], "id", sess.ID)        return c.String(http.StatusOK, "Hello")    })   e.GET("/session", func(c echo.Context) error {        sess, _ := session.Get("session", c)        //test        sess.Values["user_id"] = rand.Intn(50000)            sess.Save(c.Request(), c.Response())        return c.String(http.StatusOK, "session saved")    })當(dāng)我向路由發(fā)送 GET 請求時/,中間件會正確執(zhí)行并到達(dá)return echo.ErrUnauthorized語句,但隨后/仍然會執(zhí)行,而且我沒有得到任何 401 狀態(tài)代碼。
查看完整描述

1 回答

?
狐的傳說

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個贊

在你checkUserAuth刪除


if err := next(c); err != nil {

    c.Error(err)

}

next() 首先在您的中間件中觸發(fā)。


查看完整回答
反對 回復(fù) 2022-10-24
  • 1 回答
  • 0 關(guān)注
  • 92 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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