2021-07-15 00:13:19 +05:30
|
|
|
package utils
|
|
|
|
|
|
|
|
import (
|
2021-07-22 06:24:15 +05:30
|
|
|
"net/http"
|
|
|
|
|
2021-07-23 21:57:44 +05:30
|
|
|
"github.com/authorizerdev/authorizer/server/constants"
|
2021-07-15 00:13:19 +05:30
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
)
|
|
|
|
|
|
|
|
func SetCookie(gc *gin.Context, token string) {
|
|
|
|
secure := true
|
|
|
|
httpOnly := true
|
2021-12-31 13:52:10 +05:30
|
|
|
host, _ := GetHostParts(constants.EnvData.AUTHORIZER_URL)
|
|
|
|
domain := GetDomainName(constants.EnvData.AUTHORIZER_URL)
|
2021-12-11 06:41:35 +05:30
|
|
|
if domain != "localhost" {
|
|
|
|
domain = "." + domain
|
|
|
|
}
|
2021-12-07 17:50:50 +05:30
|
|
|
|
2021-07-22 06:24:15 +05:30
|
|
|
gc.SetSameSite(http.SameSiteNoneMode)
|
2021-12-31 13:52:10 +05:30
|
|
|
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 00:13:19 +05:30
|
|
|
}
|
2021-07-15 15:13:00 +05:30
|
|
|
|
2021-07-27 17:46:02 +05:30
|
|
|
func GetCookie(gc *gin.Context) (string, error) {
|
2021-12-31 13:52:10 +05:30
|
|
|
cookie, err := gc.Request.Cookie(constants.EnvData.COOKIE_NAME)
|
2021-07-27 17:46:02 +05:30
|
|
|
if err != nil {
|
2021-12-31 13:52:10 +05:30
|
|
|
cookie, err = gc.Request.Cookie(constants.EnvData.COOKIE_NAME + "-client")
|
2021-12-11 06:45:15 +05:30
|
|
|
if err != nil {
|
|
|
|
return "", err
|
|
|
|
}
|
2021-07-27 17:46:02 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
return cookie.Value, nil
|
|
|
|
}
|
|
|
|
|
2021-07-15 15:13:00 +05:30
|
|
|
func DeleteCookie(gc *gin.Context) {
|
|
|
|
secure := true
|
|
|
|
httpOnly := true
|
|
|
|
|
2021-12-31 13:52:10 +05:30
|
|
|
host, _ := GetHostParts(constants.EnvData.AUTHORIZER_URL)
|
|
|
|
domain := GetDomainName(constants.EnvData.AUTHORIZER_URL)
|
2021-12-11 06:41:35 +05:30
|
|
|
if domain != "localhost" {
|
|
|
|
domain = "." + domain
|
|
|
|
}
|
2021-12-07 17:50:50 +05:30
|
|
|
|
2021-07-22 06:24:15 +05:30
|
|
|
gc.SetSameSite(http.SameSiteNoneMode)
|
2021-12-31 13:52:10 +05:30
|
|
|
gc.SetCookie(constants.EnvData.COOKIE_NAME, "", -1, "/", host, secure, httpOnly)
|
|
|
|
gc.SetCookie(constants.EnvData.COOKIE_NAME+"-client", "", -1, "/", domain, secure, httpOnly)
|
2021-07-15 15:13:00 +05:30
|
|
|
}
|
2021-12-30 10:01:51 +05:30
|
|
|
|
|
|
|
func SetAdminCookie(gc *gin.Context, token string) {
|
|
|
|
secure := true
|
|
|
|
httpOnly := true
|
2021-12-31 13:52:10 +05:30
|
|
|
host, _ := GetHostParts(constants.EnvData.AUTHORIZER_URL)
|
2021-12-30 10:01:51 +05:30
|
|
|
|
2021-12-31 13:52:10 +05:30
|
|
|
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 10:01:51 +05:30
|
|
|
}
|
|
|
|
|
2021-12-31 23:06:06 +05:30
|
|
|
func DeleteAdminCookie(gc *gin.Context) {
|
2021-12-30 10:01:51 +05:30
|
|
|
secure := true
|
|
|
|
httpOnly := true
|
2021-12-31 13:52:10 +05:30
|
|
|
host, _ := GetHostParts(constants.EnvData.AUTHORIZER_URL)
|
2021-12-30 10:01:51 +05:30
|
|
|
|
2021-12-31 13:52:10 +05:30
|
|
|
gc.SetCookie(constants.EnvData.ADMIN_COOKIE_NAME, "", -1, "/", host, secure, httpOnly)
|
2021-12-30 10:01:51 +05:30
|
|
|
}
|