reprogl

Форк
0
/
session.go 
25 строк · 518.0 Байт
1
package middlewares
2

3
import (
4
	"context"
5
	"log"
6
	"net/http"
7

8
	"xelbot.com/reprogl/session"
9
)
10

11
func Session(next http.Handler, logger *log.Logger) http.Handler {
12
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
13
		sessionData := session.FromRequest(r, logger)
14

15
		ctx := r.Context()
16
		ctx = context.WithValue(ctx, session.CtxKey, sessionData)
17

18
		sw := &session.ResponseWriter{ResponseWriter: w}
19
		sw.SetSessionData(sessionData)
20

21
		next.ServeHTTP(sw, r.WithContext(ctx))
22

23
		sw.CheckAndWrite()
24
	})
25
}
26

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.