使用不同的RackSubUri安装门卫提供商和客户端

时间:2012-07-05 23:43:53

标签: ruby-on-rails-3.1 oauth-2.0

我安装     

git://github.com/applicake/doorkeeper-provider-app.git
 和
    
git://github.com/applicake/doorkeeper-devise-client.git
 同     
RackBaseURI /provider
 和     
RackBaseURI /client
 分别使用apache2和passenger。

现在,某些OAuth重定向不再有效。

提供商应该重定向到 https://example.org/provider/users/sign_in 但去 https://example.org/users/sign_in

我认为我已经在客户端正确处理了客户端的重定向 编辑config / initializers / devise.rb

config.omniauth :doorkeeper, DOORKEEPER_APP_ID, DOORKEEPER_APP_SECRET,         :client_options => {
:site => DOORKEEPER_APP_URL,
:authorize_url => "#{DOORKEEPER_APP_URL}/provider/oauth/authorize",
:ssl => {:ca_path => "/etc/ssl/certs"}
}

但如上所示,我无法在提供商中找到该做什么。 谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

Oauth或门卫似乎没有意识到这一点 RackBaseURI / provider

所以我尝试调整路线

devise_for :users, path: "provider/users"

适用于生成路径。它创造了:

new_user_session GET    /provider/users/sign_in(.:format)        {:action=>"new", :controller=>"devise/sessions"}
user_session POST   /provider/users/sign_in(.:format)        {:action=>"create", :controller=>"devise/sessions"}

然而,我有一个新问题,即传入的网址不再被识别! 因此,为相同的操作提供额外的路径:

devise_scope :user do
get  "/users/sign_in" , to:  "devise/sessions#new"
post "/users/sign_in" , to: "devise/sessions#create"
end

我把它拼凑在一起,没有遇到文件说明这是做这件事的方法。