refactor: store redirect URI in tinyauth session cookie

This commit is contained in:
Stavros
2025-04-06 20:37:02 +03:00
parent df849d5a5c
commit bd7e160e10
6 changed files with 21 additions and 27 deletions

View File

@@ -178,6 +178,7 @@ func (auth *Auth) CreateSessionCookie(c *gin.Context, data *types.SessionCookie)
session.Values["provider"] = data.Provider
session.Values["expiry"] = time.Now().Add(time.Duration(sessionExpiry) * time.Second).Unix()
session.Values["totpPending"] = data.TotpPending
session.Values["redirectURI"] = data.RedirectURI
// Save session
err = session.Save(c.Request, c.Writer)
@@ -231,15 +232,17 @@ func (auth *Auth) GetSessionCookie(c *gin.Context) (types.SessionCookie, error)
cookieProvider := session.Values["provider"]
cookieExpiry := session.Values["expiry"]
cookieTotpPending := session.Values["totpPending"]
cookieRedirectURI := session.Values["redirectURI"]
// Convert interfaces to correct types
username, usernameOk := cookieUsername.(string)
provider, providerOk := cookieProvider.(string)
expiry, expiryOk := cookieExpiry.(int64)
totpPending, totpPendingOk := cookieTotpPending.(bool)
redirectURI, redirectURIOk := cookieRedirectURI.(string)
// Check if the cookie is invalid
if !usernameOk || !providerOk || !expiryOk || !totpPendingOk {
if !usernameOk || !providerOk || !expiryOk || !totpPendingOk || !redirectURIOk {
log.Warn().Msg("Session cookie invalid")
return types.SessionCookie{}, nil
}
@@ -262,6 +265,7 @@ func (auth *Auth) GetSessionCookie(c *gin.Context) (types.SessionCookie, error)
Username: username,
Provider: provider,
TotpPending: totpPending,
RedirectURI: redirectURI,
}, nil
}