From 969a4505edffb8702176b8c705215c8befc062f4 Mon Sep 17 00:00:00 2001 From: kekskurse Date: Thu, 26 Sep 2024 11:20:49 +0200 Subject: [PATCH] easyauth --- easyauth.go | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/easyauth.go b/easyauth.go index 7644686..f955173 100644 --- a/easyauth.go +++ b/easyauth.go @@ -1,6 +1,7 @@ package auth import ( + "errors" "net/http" "time" @@ -30,16 +31,15 @@ func (e EasyAuth) GetUser(w http.ResponseWriter, r *http.Request) (AuthentikUser } cookie, err := r.Cookie("jwt") if err != nil { - return AuthentikUser{}, false, err - } - - redirectURL, err := e.client.GetAuthorizationURL("") - if err != nil { + if errors.Is(err, http.ErrNoCookie) { + e.redirectAuth(w, r) + return AuthentikUser{}, false, nil + } return AuthentikUser{}, false, err } if cookie.Value == "" { - http.Redirect(w, r, redirectURL, http.StatusTemporaryRedirect) + e.redirectAuth(w, r) return AuthentikUser{}, false, nil } @@ -52,6 +52,16 @@ func (e EasyAuth) GetUser(w http.ResponseWriter, r *http.Request) (AuthentikUser return claims.User, true, nil } +func (e EasyAuth) redirectAuth(w http.ResponseWriter, r *http.Request) error { + redirectURL, err := e.client.GetAuthorizationURL("") + if err != nil { + return err + } + + http.Redirect(w, r, redirectURL, http.StatusTemporaryRedirect) + return nil +} + func (e EasyAuth) AuthHTTPHandler(w http.ResponseWriter, r *http.Request) { token, err := e.client.GetTokenFromCode(r.URL.Query().Get("code")) if err != nil {