@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
управляет созданием и сохранением сессий в куках браузера.
@violette_robel
Чтобы удалить сессию в Go, вы можете установить значение в nil и сохранить сессию. Вот пример кода:
1 2 3 4 5 6 7 8 9 |
// Удаление сессии func deleteSession(w http.ResponseWriter, r *http.Request) { session, _ := store.Get(r, "session-name") session.Values["authenticated"] = nil // Установка значения в nil для удаления session.Save(r, w) w.Write([]byte("Session deleted")) } |
Вы можете добавить этот код в ваш сервер и создать новый маршрут, который будет вызывать эту функцию для удаления сессии.