generated from tsivinsky/go-template
allow to upload images
but also files, hmmmm
This commit is contained in:
45
auth/cookies.go
Normal file
45
auth/cookies.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package auth
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"time"
|
||||
)
|
||||
|
||||
func SetUserCookie(w http.ResponseWriter, token string, expiryTime time.Time) {
|
||||
http.SetCookie(w, &http.Cookie{
|
||||
Name: "token",
|
||||
Value: token,
|
||||
Secure: true,
|
||||
HttpOnly: true,
|
||||
Path: "/",
|
||||
Expires: expiryTime,
|
||||
SameSite: http.SameSiteStrictMode,
|
||||
})
|
||||
}
|
||||
|
||||
func RemoveUserCookie(w http.ResponseWriter) {
|
||||
http.SetCookie(w, &http.Cookie{
|
||||
Name: "token",
|
||||
Value: "",
|
||||
Secure: true,
|
||||
HttpOnly: true,
|
||||
Path: "/",
|
||||
Expires: time.Now().Add(-time.Hour),
|
||||
SameSite: http.SameSiteStrictMode,
|
||||
})
|
||||
}
|
||||
|
||||
func GetUserIdFromRequest(r *http.Request) (int64, error) {
|
||||
c, err := r.Cookie("token")
|
||||
if err != nil {
|
||||
return -1, fmt.Errorf("no token cookie: %v", err)
|
||||
}
|
||||
|
||||
userId, err := ValidateUserToken(c.Value)
|
||||
if err != nil {
|
||||
return -1, fmt.Errorf("invalid token: %v", err)
|
||||
}
|
||||
|
||||
return userId, nil
|
||||
}
|
||||
Reference in New Issue
Block a user