我。 d想詳細說明(正確的)答案@ jeroen-van-dijk給出了上面爲我工作的答案
在config/routes.rb中,在devise_for塊:
devise_for :users, :controllers => {
:omniauth_callbacks => "user_omniauth_callbacks" } do
...
get '/users/connect/:network', :to => redirect("https://stackoverflow.com/users/auth/%{network}"),
:as => 'user_oauth_connect'
end
然後改變你的 「登錄使用Facebook的」 鏈接,以使用新航線:
<!-- before it linked to user_omniauth_authorize_path -->
<%= link_to "Sign in using Facebook", user_oauth_connect_path(:facebook) %>
在應用程序/控制器/ user_omnniauth_callbacks_controller.rb
class UserOmniauthCallbacksController < Devise::OmniauthCallbacksController
include Devise::Controllers::Rememberable
def facebook
@user = User.find(...)
...
remember_me(@user) # set the remember_me cookie
end
end
這個解決方案工作得很好對於我來說,使用Rails 3.1和Devise 1.4.9。
你是如何給API客戶端另一個URL的?在config/initializers/devise.rb中的某處? – 2011-05-12 20:24:52