Как удалить сессию в golang?

Пользователь

от violette_robel , в категории: Golang , 8 месяцев назад

Как удалить сессию в golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от brooklyn , 8 месяцев назад

@violette_robel 

Для удаления сессии в Go, вы можете использовать пакет github.com/gorilla/sessions. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package main

import (
	"net/http"
	"github.com/gorilla/sessions"
)

var store = sessions.NewCookieStore([]byte("secret-key"))

func main() {
	http.HandleFunc("/login", login)
	http.HandleFunc("/logout", logout)
	http.ListenAndServe(":8080", nil)
}

func login(w http.ResponseWriter, r *http.Request) {
	session, _ := store.Get(r, "session-name")

	session.Values["authenticated"] = true
	session.Save(r, w)

	w.Write([]byte("Logged in"))
}

func logout(w http.ResponseWriter, r *http.Request) {
	session, _ := store.Get(r, "session-name")

	session.Values["authenticated"] = false
	session.Save(r, w)

	w.Write([]byte("Logged out"))
}


В этом примере создается простой веб-сервер, который имеет два маршрута /login и /logout. Маршрут /login устанавливает значение authenticated в сессии, а маршрут /logout удаляет это значение. Пакет gorilla/sessions управляет созданием и сохранением сессий в куках браузера.