【发布时间】:2013-04-02 05:07:08
【问题描述】:
我在 routes.rb 中有这个:
namespace :api do
namespace :v1 do
...
devise_for :users, constraints: { format: :json },
:controllers => { :omniauth_callbacks => "auths" }
...
end
end
其中包括以下路线:
new_api_v1_user_confirmation GET /api/v1/users/confirmation/new(.:format) api/v1/confirmations#new {:format=>:json}
GET /api/v1/users/confirmation(.:format) api/v1/confirmations#show {:format=>:json}
api_v1_user_omniauth_authorize /users/auth/:provider(.:format) auths#passthru {:provider=>/facebook|twitter|linkedin/, :format=>:json}
api_v1_user_omniauth_callback /users/auth/:action/callback(.:format) auths#(?-mix:facebook|twitter|linkedin) {:format=>:json}
如何将最后两条路由命名为命名空间,例如:
/api/v1/auth/:provider(.:format)
/api/v1/auth/:provider/callback(.:format)
【问题讨论】:
-
有没有想过这个问题?我也有同样的问题。
-
我最终从我的 API 消费者应用程序指向没有 api 命名空间的 ip_of_api_server/users/auth
-
FWIW,我只是决定在没有设计的情况下使用omniauth,并将其放在我适当的命名空间中,然后手动进行身份验证后的工作。但是我们也在做骨干/木偶,devise也不喜欢和它玩得很好。
-
不错,具体怎么样?
-
将 cmets 转换为答案
标签: ruby-on-rails-3 devise routes omniauth