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