authorizer/server/utils/cookie.go

74 lines
2.0 KiB
Go
Raw Normal View History

package utils
import (
2021-07-22 00:54:15 +00:00
"net/http"
2021-07-23 16:27:44 +00:00
"github.com/authorizerdev/authorizer/server/constants"
"github.com/gin-gonic/gin"
)
func SetCookie(gc *gin.Context, token string) {
secure := true
httpOnly := true
2021-12-31 08:22:10 +00:00
host, _ := GetHostParts(constants.EnvData.AUTHORIZER_URL)
domain := GetDomainName(constants.EnvData.AUTHORIZER_URL)
if domain != "localhost" {
domain = "." + domain
}
2021-07-22 00:54:15 +00:00
gc.SetSameSite(http.SameSiteNoneMode)
2021-12-31 08:22:10 +00:00
gc.SetCookie(constants.EnvData.COOKIE_NAME, token, 3600, "/", host, secure, httpOnly)
gc.SetCookie(constants.EnvData.COOKIE_NAME+"-client", token, 3600, "/", domain, secure, httpOnly)
}
2021-07-15 09:43:00 +00:00
2021-07-27 12:16:02 +00:00
func GetCookie(gc *gin.Context) (string, error) {
2021-12-31 08:22:10 +00:00
cookie, err := gc.Request.Cookie(constants.EnvData.COOKIE_NAME)
2021-07-27 12:16:02 +00:00
if err != nil {
2021-12-31 08:22:10 +00:00
cookie, err = gc.Request.Cookie(constants.EnvData.COOKIE_NAME + "-client")
if err != nil {
return "", err
}
2021-07-27 12:16:02 +00:00
}
return cookie.Value, nil
}
2021-07-15 09:43:00 +00:00
func DeleteCookie(gc *gin.Context) {
secure := true
httpOnly := true
2021-12-31 08:22:10 +00:00
host, _ := GetHostParts(constants.EnvData.AUTHORIZER_URL)
domain := GetDomainName(constants.EnvData.AUTHORIZER_URL)
if domain != "localhost" {
domain = "." + domain
}
2021-07-22 00:54:15 +00:00
gc.SetSameSite(http.SameSiteNoneMode)
2021-12-31 08:22:10 +00:00
gc.SetCookie(constants.EnvData.COOKIE_NAME, "", -1, "/", host, secure, httpOnly)
gc.SetCookie(constants.EnvData.COOKIE_NAME+"-client", "", -1, "/", domain, secure, httpOnly)
2021-07-15 09:43:00 +00:00
}
2021-12-30 04:31:51 +00:00
func SetAdminCookie(gc *gin.Context, token string) {
secure := true
httpOnly := true
2021-12-31 08:22:10 +00:00
host, _ := GetHostParts(constants.EnvData.AUTHORIZER_URL)
2021-12-30 04:31:51 +00:00
2021-12-31 08:22:10 +00:00
gc.SetCookie(constants.EnvData.ADMIN_COOKIE_NAME, token, 3600, "/", host, secure, httpOnly)
}
func GetAdminCookie(gc *gin.Context) (string, error) {
cookie, err := gc.Request.Cookie(constants.EnvData.ADMIN_COOKIE_NAME)
if err != nil {
return "", err
}
return cookie.Value, nil
2021-12-30 04:31:51 +00:00
}
func DeleteAdminCookie(gc *gin.Context, token string) {
secure := true
httpOnly := true
2021-12-31 08:22:10 +00:00
host, _ := GetHostParts(constants.EnvData.AUTHORIZER_URL)
2021-12-30 04:31:51 +00:00
2021-12-31 08:22:10 +00:00
gc.SetCookie(constants.EnvData.ADMIN_COOKIE_NAME, "", -1, "/", host, secure, httpOnly)
2021-12-30 04:31:51 +00:00
}