This repository has been archived on 2025-03-01. You can view files and clone it, but cannot push or open issues or pull requests.
trantor/session.go
2012-08-18 02:06:43 +02:00

43 lines
846 B
Go

package main
import (
"net/http"
"code.google.com/p/gorilla/sessions"
"code.google.com/p/gorilla/securecookie"
)
var sesStore = sessions.NewCookieStore(securecookie.GenerateRandomKey(64))
func CreateSession(user string, w http.ResponseWriter, r *http.Request) {
session, _ := sesStore.Get(r, "admin")
session.Values["user"] = user
session.Save(r, w)
}
func SessionUser(r *http.Request) string {
session, err := sesStore.New(r, "admin")
if err != nil {
return ""
}
if session.IsNew {
return ""
}
user, ok := session.Values["user"].(string)
if !ok {
return ""
}
return user
}
func LogOut(w http.ResponseWriter, r *http.Request) {
session, err := sesStore.Get(r, "admin")
if err != nil {
return
}
if session.IsNew {
return
}
session.Values["user"] = ""
session.Options.MaxAge = -1
session.Save(r, w)
}