Prima di iniziare con le sessioni in golang ho bisogno di risposte ad alcune domandemigliori pratiche con le sessioni (Gorilla/sessioni)
sessione esempio
import "github.com/gorilla/sessions"
var store = sessions.NewCookieStore([]byte("33446a9dcf9ea060a0a6532b166da32f304af0de"))
func Handler(w http.ResponseWriter, r *http.Request){
session, _ := store.Get(r, "session-name")
session.Values["foo"] = "bar"
session.Values[42] = 43
session.Save(r, w)
fmt.Fprint(w, "Hello world :)")
}
func main(){
store.Options = &sessions.Options{
Domain: "localhost",
Path: "/",
MaxAge: 60 * 15,
Secure: false,
HttpOnly: true,
}
}
Q1:
E 'possibile aggiungere più sessioni nello stesso dominio con nomi diversi?
session1, _ := store.Get(r, "session-name-1")
session2, _ := store.Get(r, "session-name-2")
Quando sono necessarie più sessioni nello stesso dominio?
Q2:
Qual è la migliore pratica per ottenere le variabili della sessione? my_session_var = session.Values [ "foo"]
Q3:
Come controllare se la sessione viene salvata in modo corretto? Se si accede allo stesso map
sia per impostare che per ottenere le variabili?
aggiornamento
package main
import (
"github.com/gorilla/sessions"
)
var (
store = sessions.NewCookieStore([]byte("33446a9dcf9ea060a0a6532b166da32f304af0de"))
)
type handler func(w http.ResponseWriter, r *http.Request, s *sessions.Session)
func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request){
session, _ := store.Get(r, "session-name")
h(w, r, session)
}
func Handler_404(w http.ResponseWriter, r *http.Request, s *sessions.Session){
fmt.Fprint(w, "Oops, something went wrong!")
}
errore
# command-line-arguments
.\mux.go:101: cannot convert Handler_404 (type func(http.ResponseWriter, *http.Request, *sessions.Session)) to type http.HandlerFunc
Visualizza maggiori nella sessione in particolare su http: // StackOverflow. it/a/21866122/6309 – VonC
hanno aggiornato la mia domanda .. ottenere un errore durante la compilazione di – clarkk
@clarkk che sarebbe meglio come una domanda separata. – VonC