Aplikacja Moja szyna używa sesji do przechowywania poświadczeń użytkownika do autoryzacji. Próbuję się zalogować i wykonać pewne czynności (wymagające sesji użytkownika) w kodzie Go. Czy powinienem pobrać sesję użytkownika podczas logowania i przejść do następnego żądania? Jak mogę sobie z tym poradzić?Uzyskaj wartości sesji w golang
6
A
Odpowiedz
7
Go standardowa biblioteka nie udostępnia menedżera sesji HTTP. Więc musisz napisać samemu, lub użyć napisanego przez innych.
Kilka przykładów:
- https://github.com/icza/session - obejmuje Google App Wspornik silnika (ujawnienie: Jestem autor)
- https://github.com/gorilla/sessions (część Gorilla web toolkit)
Zazwyczaj HTTP sesje są zarządzane za pośrednictwem plików cookie między serwerem a klientem, i jako taki sesję (identyfikator sesji) można uzyskać bezpośrednio z żądania (http.Request
), np. z Request.Cookie()
.
W związku z tym, że nie jest konieczne "przekazywanie" sesji przez "łańcuch żądań", każdy program obsługi może uzyskać do niej dostęp, mając tylko numer http.Request
.
na przykład stosując github.com/icza/session
można to zrobić tak:
func MyHandler(w http.ResponseWriter, r *http.Request) {
sess := session.Get(r)
if sess == nil {
// No session (yet)
} else {
// We have a session, use it
}
}
Korzystanie Gorilla sessions, jest podobna:
var store = sessions.NewCookieStore([]byte("something-very-secret"))
func MyHandler(w http.ResponseWriter, r *http.Request) {
session, err := store.Get(r, "session-name")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
// Use session
}
Powiązane problemy
- 1. Uzyskaj identyfikator sesji w ASP.Net
- 2. Wyliczanie wartości rejestru w Go (Golang)
- 3. Zmiana wartości podczas iteracji w golang
- 4. Uzyskaj wartości wyliczeniowe w Rust
- 5. Zestaw Spring 3.0 i uzyskaj atrybut sesji
- 6. Jak obsługiwać zwykły tekst HTTP Uzyskaj odpowiedź w Golang?
- 7. Uzyskaj cały proces bieżącej aktywnej sesji
- 8. Uzyskaj wyraźne wartości rekordów
- 9. golang goryl/sesja dostał wartość zerową podczas sprawdzania sesji
- 10. Uzyskaj wartości okna pod myszą
- 11. Perl, uzyskaj wszystkie wartości mieszania
- 12. Uzyskaj wartości z plików * .resx w XAML
- 13. Uzyskaj klucze i wartości w wierszu polecenia
- 14. Uzyskaj wszystkie wartości w NameValueCollection na ciąg
- 15. Uzyskaj wartości parametrów w stosie śledzenia
- 16. Uzyskaj wartości nagłówków w ASP.NET MVC
- 17. Uzyskaj losowych wartości z tablicy
- 18. Uzyskaj wartości translate3d elementu div?
- 19. AngularJS - uzyskaj wartości atrybutów elementu
- 20. Uzyskaj wartości wyliczeniowe z klasy
- 21. Uzyskaj wartości działki() ograniczające wartość
- 22. Czy mogę dynamicznie usuwać wartości instancji typu struct w golang?
- 23. Jak zainicjować wartości zagnieżdżonego tablicy struct w golang
- 24. jak uzyskać różne wartości w mongodb przy użyciu golang
- 25. Używając golang i mgo, jak wyszukać zakres wartości w MongoDB?
- 26. Wyjściowa pamięć MVC na podstawie wartości sesji
- 27. Pobieranie wartości identyfikatora sesji z żądania JSF
- 28. Porównanie wartości zmiennej sesji z ciągiem
- 29. Inicjowanie wartości za pomocą zmiennej sesji
- 30. Jak łączyć wartości sesji z spacją