From e13262dd367b03a8e69d5e64aa3742d0f3e9b494 Mon Sep 17 00:00:00 2001 From: Mickael Kerjean Date: Wed, 13 Oct 2021 22:54:15 +1100 Subject: [PATCH] feature (oauth): redirection link for oauth --- server/ctrl/session.go | 5 +++++ server/main.go | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/server/ctrl/session.go b/server/ctrl/session.go index 1f715445..18b36e38 100644 --- a/server/ctrl/session.go +++ b/server/ctrl/session.go @@ -6,6 +6,7 @@ import ( . "github.com/mickael-kerjean/filestash/server/common" "github.com/mickael-kerjean/filestash/server/model" "net/http" + "strings" "time" ) @@ -142,5 +143,9 @@ func SessionOAuthBackend(ctx App, res http.ResponseWriter, req *http.Request) { SendErrorResult(res, ErrNotSupported) return } + if strings.Contains(req.Header.Get("Accept"), "text/html") { + http.Redirect(res, req, obj.OAuthURL(), http.StatusSeeOther) + return + } SendSuccessResult(res, obj.OAuthURL()) } diff --git a/server/main.go b/server/main.go index 2a6d4dcc..40ef016e 100644 --- a/server/main.go +++ b/server/main.go @@ -32,7 +32,7 @@ func Init(a *App) { session.HandleFunc("", NewMiddlewareChain(SessionAuthenticate, middlewares, *a)).Methods("POST") middlewares = []Middleware{ApiHeaders, SecureHeaders, SecureAjax, SessionTry} session.HandleFunc("", NewMiddlewareChain(SessionLogout, middlewares, *a)).Methods("DELETE") - middlewares = []Middleware{ApiHeaders, SecureHeaders, SecureAjax} + middlewares = []Middleware{ApiHeaders, SecureHeaders} session.HandleFunc("/auth/{service}", NewMiddlewareChain(SessionOAuthBackend, middlewares, *a)).Methods("GET") // API for admin