diff --git a/server/handlers.go b/server/handlers.go index 926b4000..430253c3 100644 --- a/server/handlers.go +++ b/server/handlers.go @@ -222,12 +222,9 @@ func (s *Server) handleConnectorLogin(w http.ResponseWriter, r *http.Request) { } return } - scopes := parseScopes(authReq.Scopes) - showBacklink := len(s.connectors) > 1 - switch r.Method { - case "GET": - // Set the connector being used for the login. + // Set the connector being used for the login. + if authReq.ConnectorID != connID { updater := func(a storage.AuthRequest) (storage.AuthRequest, error) { a.ConnectorID = connID return a, nil @@ -237,7 +234,13 @@ func (s *Server) handleConnectorLogin(w http.ResponseWriter, r *http.Request) { s.renderError(w, http.StatusInternalServerError, "Database error.") return } + } + scopes := parseScopes(authReq.Scopes) + showBacklink := len(s.connectors) > 1 + + switch r.Method { + case "GET": switch conn := conn.Connector.(type) { case connector.CallbackConnector: // Use the auth request ID as the "state" token.