summaryrefslogtreecommitdiffstats
path: root/utils.go
diff options
context:
space:
mode:
Diffstat (limited to 'utils.go')
-rw-r--r--utils.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/utils.go b/utils.go
index cb29662..49fdc5b 100644
--- a/utils.go
+++ b/utils.go
@@ -4,6 +4,7 @@ import (
"crypto/md5"
"crypto/rand"
"encoding/hex"
+ "net/http"
)
func randomToken(length int) string {
@@ -12,7 +13,33 @@ func randomToken(length int) string {
return hex.EncodeToString(b)
}
+func genKey(length int) []byte {
+ b := make([]byte, length)
+ rand.Read(b)
+ return b
+}
+
func md5hex(s string) string {
hash := md5.Sum([]byte(s))
return hex.EncodeToString(hash[:])
}
+
+func (app *App) GetCookie(r *http.Request, name string, dst interface{}) error {
+ cookie, err := r.Cookie(name)
+ if err != nil {
+ return err
+ }
+ return app.CookieHandler.Decode(name, cookie.Value, dst)
+}
+
+func (app *App) SetCookie(w http.ResponseWriter, name string, v interface{}, exp int) {
+ encoded, _ := app.CookieHandler.Encode(name, v)
+ cookie := &http.Cookie{
+ Name: name,
+ Value: encoded,
+ Path: "/",
+ HttpOnly: true,
+ MaxAge: exp,
+ }
+ http.SetCookie(w, cookie)
+}