пятой строке передать в контекст чтобы потом использовать в другом хендлере(код2)? Или это сделать невозможно?
Код1:
1func myMiddleware(next http.HandlerFunc) http.HandlerFunc {
2 return func(w http.ResponseWriter, r *http.Request) {
3 // THIS PAGE should ONLY obe accessible to those users that logged in
4 // check if user already logged in
5 u := User{}
6 err := u.ExtractTokenUsername(r)
7 if err != nil {
8 log.Println(err)
9 }
10 if u.Name != "" {
11 err := db.dbFindUserByName(u.Name)
12 if err != nil {
13 log.Println(err)
14 } else {
15 ctx := context.WithValue(r.Context(), "Username", u.Name)
16 next(w, r.WithContext(ctx))
17 }
18 }
19 }
20 }
Код2:
1func (env *Env) GetCodePageHandler(w http.ResponseWriter, r *http.Request) {
2 http.Redirect(w, r, "/", http.StatusFound)
3 }
В go есть превосходная песочница play.golang.org, с помощью которой можно поделиться своим кодом со всеми.
Обсуждают сегодня