我正在構建一個使用Devise gem進行身份驗證的Web應用程序(也帶有API),並且我還使用Doorkeeper gem進行API部分的身份驗證。如何使用Devise和Gatekeeper寶石?
現在的問題是,當我去接收Oauth2代碼(和登錄)的URL時,我被重定向到Web應用程序,而不是客戶端回調URL。
我需要做的是在通常登錄時重定向到Web應用程序,並在使用Oauth時重定向到回調URL。
我該怎麼做?我正在覆蓋Devise會議控制器,但我不知道該如何投入。
這是我的代碼:
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
問題是,設計似乎忽略我的重定向邏輯。
請進一步諮詢。
'login_url'可能是'new_user_session_url' –
這給了我一個循環的重定向...請參閱我的答案,我是如何解決它的。 – zmilojko