这是情况。我有一个使用公寓 gem 的多租户 Rails 应用程序,我需要在其中实施 LinkedIn OmniAuth 策略。
正如您在我的路由中看到的那样,Devise 用户和关联的路由仅保留在子域的各个架构上。
示例路线:
好的:https://frank.example.io/users/sign_in
坏的:https://example.io/users/sign_in
路线
class SubdomainPresent
def self.matches?(request)
request.subdomain.present?
end
end
class SubdomainBlank
def self.matches?(request)
request.subdomain.blank?
end
end
Rails.application.routes.draw do
constraints(SubdomainPresent) do
...
devise_for :users, controllers: {
omniauth_callbacks: 'omniauth_callbacks'
}
devise_scope :user do
get '/users/:id', to: 'users/registrations#show', as: "show_user"
end
...
end
end
我的具体问题是 LinkedIn 不支持带有回调 URL 的通配符,所以我不知道如何在 OAuth 身份验证后将用户引导到正确的域。