Buduję też aplikację internetową (z interfejsem API), która korzysta z Devise gem do uwierzytelniania, a także używam klejnotu Doorkeeper do uwierzytelniania części API.Jak używać klejnotów Devise i Doorkeeper?
Problem polega na tym, że kiedy wchodzę na adres URL, aby otrzymać kod Oauth2 (i zalogować się), jestem przekierowywany do aplikacji internetowej, a nie do adresu URL wywołania zwrotnego klienta.
Co muszę zrobić, to przekierować się do aplikacji internetowej podczas logowania się w normalny sposób i do adresu URL zwrotnego podczas korzystania z Oauth.
Jak mogę to zrobić? Nadpisuję kontroler sesji Devise, ale nie wiem, co w nim umieścić.
To jest mój kod:
def new
session[:return_to] = params[:return_to] if params[:return_to]
resource = build_resource
clean_up_passwords(resource)
end
def create
resource = warden.authenticate!(auth_options)
sign_in(resource_name, resource)
if session[:return_to]
redirect_to session[:return_to]
session[:return_to] = nil
else
respond_with resource, :location => after_sign_in_path_for(resource)
end
end
Problem jest to, że Devise wydaje się ignorować moje logiki przekierowanie.
Proszę o poradę dalej.
'login_url' może być' new_user_session_url' –
dało mi to cykliczne przekierowanie ... Zobacz moją odpowiedź na pytanie, jak to rozwiązałem. – zmilojko