Add session cookie
This commit is contained in:
parent
8fd3e7aeaa
commit
2d270951d7
|
@ -0,0 +1,37 @@
|
||||||
|
package controllers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"magmise/models"
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/wader/gormstore/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
// key must be 16, 24 or 32 bytes long (AES-128, AES-192 or AES-256)
|
||||||
|
key = []byte("super-secret-key")
|
||||||
|
store = gormstore.NewOptions(models.DB(), gormstore.Options{}, []byte(os.Getenv("HASHKEY")), []byte("BLOCKKEY"))
|
||||||
|
)
|
||||||
|
|
||||||
|
func Login(w http.ResponseWriter, r *http.Request) {
|
||||||
|
session, err := store.Get(r, "session")
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Authentication goes here
|
||||||
|
// ...
|
||||||
|
// Set user as authenticated
|
||||||
|
session.Values["user"] = "test"
|
||||||
|
session.Values["authenticated"] = true
|
||||||
|
session.Save(r, w)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Logout(w http.ResponseWriter, r *http.Request) {
|
||||||
|
session, _ := store.Get(r, "session")
|
||||||
|
|
||||||
|
// Revoke users authentication
|
||||||
|
session.Values["authenticated"] = false
|
||||||
|
session.Save(r, w)
|
||||||
|
}
|
Loading…
Reference in New Issue