Files
projectreshoot/cookies/tokens.go

49 lines
869 B
Go

package cookies
import (
"net/http"
"projectreshoot/config"
"time"
)
// Get the value of the access and refresh tokens
func GetTokens(
w http.ResponseWriter,
r *http.Request,
) (acc string, ref string) {
accCookie, accErr := r.Cookie("access")
refCookie, refErr := r.Cookie("refresh")
var (
accStr string = ""
refStr string = ""
)
if accErr == nil {
accStr = accCookie.Value
}
if refErr == nil {
refStr = refCookie.Value
}
return accStr, refStr
}
// Set a token with the provided details
func SetToken(
w http.ResponseWriter,
r *http.Request,
config *config.Config,
token string,
scope string,
exp int64,
) {
tokenCookie := &http.Cookie{
Name: scope,
Value: token,
Path: "/",
Expires: time.Unix(exp, 0),
HttpOnly: true,
SameSite: http.SameSiteLaxMode,
Secure: config.SSL,
}
http.SetCookie(w, tokenCookie)
}