github.com/EngineerKamesh/gofullstack@v0.0.0-20180609171605-d41341d7d4ee/volume2/section7/gopherfaceq/common/authenticate/session.go (about) 1 package authenticate 2 3 import ( 4 "log" 5 "net/http" 6 "os" 7 8 "github.com/EngineerKamesh/gofullstack/volume2/section7/gopherfaceq/models" 9 10 "github.com/gorilla/sessions" 11 ) 12 13 var SessionStore *sessions.FilesystemStore 14 15 func CreateUserSession(u *models.User, sessionID string, w http.ResponseWriter, r *http.Request) error { 16 17 gfSession, err := SessionStore.Get(r, "gopherface-session") 18 19 if err != nil { 20 log.Print(err) 21 } 22 23 gfSession.Values["sessionID"] = sessionID 24 gfSession.Values["username"] = u.Username 25 gfSession.Values["firstName"] = u.FirstName 26 gfSession.Values["lastName"] = u.LastName 27 gfSession.Values["email"] = u.Email 28 29 err = gfSession.Save(r, w) 30 if err != nil { 31 log.Print(err) 32 return err 33 } 34 35 return nil 36 } 37 38 func ExpireUserSession(w http.ResponseWriter, r *http.Request) { 39 gfSession, err := SessionStore.Get(r, "gopherface-session") 40 41 if err != nil { 42 log.Print(err) 43 } 44 45 gfSession.Options.MaxAge = -1 46 gfSession.Save(r, w) 47 } 48 49 func init() { 50 51 SessionStore = sessions.NewFilesystemStore("/tmp/gopherface-sessions", []byte(os.Getenv("GOPHERFACE_HASH_KEY"))) 52 53 }