如何将/ auth /:provider中的omniauth路由更改为/ myapp/auth /:provider

99m*_*les 12 ruby-on-rails omniauth ruby-on-rails-3

如何更改触发omniauth的路由从/ auth /:provider到/ myapp/auth /:provider?

我也不想重定向,因为我的服务器会将不在/ myapp /中的任何内容发送到错误的地方.

Pie*_*ois 8

这是我在config.ru文件中这样做的方式.我的情况是,我的供应商是CAS.

use OmniAuth::Builder do
  configure do |config|
      config.path_prefix = '/my-app-path/auth'
  end
  provider :cas,  CAS::OPTIONS 
end
Run Code Online (Sandbox Code Playgroud)

请注意,这CAS::OPTIONS是一个CAS配置的数组omniauth::cas.这似乎工作正常.我认为你也必须改变omniauth回调:/auth/:provider/callback应该加上前缀/my-app-path/auth/:provider/callback.


Sai*_*ram 5

您可以通过:setup选项进行更改

资料来源:https://github.com/omniauth/omniauth/blob/e9978e377f1ac2b7271e5a8486dfe103a1c1d48d/lib/omniauth/strategy.rb#L304-L307

  • 谢谢!更具体地说,我必须将此添加到我的提供者:path_prefix:"/ myapp/auth" (8认同)