From 75aa163ccf407e9690f9ea0e548f8fed70073722 Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Tue, 26 Apr 2022 15:43:35 +0200 Subject: OAuth: Add a Cancel method --- internal/oauth.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'internal/oauth.go') diff --git a/internal/oauth.go b/internal/oauth.go index 16edd1e..a49b492 100644 --- a/internal/oauth.go +++ b/internal/oauth.go @@ -271,6 +271,7 @@ func (oauth *OAuth) Finish() error { return errors.New("invalid state to finish oauth") } tokenErr := oauth.getTokensWithCallback() + if tokenErr != nil { return tokenErr } @@ -278,6 +279,11 @@ func (oauth *OAuth) Finish() error { return nil } +func (oauth *OAuth) Cancel() { + oauth.Session.CallbackError = &OAuthCancelledCallbackError{} + oauth.Session.Server.Shutdown(oauth.Session.Context) +} + func (oauth *OAuth) Login(name string, authorizationURL string, tokenURL string) error { authInitializeErr := oauth.start(name, authorizationURL, tokenURL) @@ -320,6 +326,13 @@ func (oauth *OAuth) NeedsRelogin() bool { return true } +type OAuthCancelledCallbackError struct { +} + +func (e *OAuthCancelledCallbackError) Error() string { + return fmt.Sprintf("Client cancelled OAuth") +} + type OAuthGenStateUnableError struct { Err error } -- cgit v1.2.3