Tôi đang xây dựng một ứng dụng web (với một API quá) đang sử dụng đá quý Devise để xác thực và tôi cũng sử dụng đá quý Doorkeeper để xác thực cho phần API.Làm thế nào để sử dụng cả đá quý Devise và Doorkeeper?
Vấn đề là khi tôi truy cập URL để nhận mã Oauth2 (và đăng nhập), tôi được chuyển hướng đến ứng dụng web chứ không phải URL gọi lại của khách hàng.
Điều tôi cần làm là chuyển hướng đến ứng dụng web khi đăng nhập bình thường và đến URL gọi lại khi sử dụng Oauth.
Làm thế nào tôi có thể làm điều này? Tôi đang ghi đè lên bộ điều khiển phiên Devise nhưng tôi không biết phải đưa vào điều gì.
Đây là mã của tôi:
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
Vấn đề là toan tính dường như bỏ qua logic chuyển hướng của tôi.
Vui lòng tham khảo thêm.
'login_url' có thể là 'new_user_session_url' –
điều này đã cho tôi một chuyển hướng vòng tròn ... Xem câu trả lời của tôi về cách tôi đã giải quyết nó. – zmilojko