0

根据 Devise 人员提供的示例,我已在我的应用程序中将 Devise + OmniAuth 与omniauth-google-apps 策略集成。这一切都适用于以下用户流程。

  • 转到我的标准登录页面
  • 点击使用 Google Apps 登录
  • 在 users/auth/google_apps 的表单中输入 Google Apps 域(标准 OmniAuth 表单)
  • 登录到 Google Apps(在身份验证后向 omniauth_callbacks 发起标准回调)
  • 用户现在已登录到我的应用程序 - 万岁!

但是,我想用我自己的表单(这是用户提交他或她的 Google Apps 域的表单)“覆盖”标准的权宜之计 OmniAuth Google Apps 身份验证表单。

我该怎么做呢?

4

1 回答 1

1

好的,在研究了一段时间之后,我想我已经找到了一个很好的解决方案。我并没有“覆盖”标准的权宜之计 OmniAuth Google Apps 身份验证表单本身,但这就是我所做的。

google_apps我在现有的操作中添加了一个操作SessionsController

# sessions_controller.rb
def google_apps
  @title = 'Sign In with Google Apps'

  respond_to do |format|
    format.html
  end
end

我添加了一个自定义视图来询问用户她的 Google Apps 域(请注意,表单只是将域发布到与 OmniAuth 表单相同的位置

-# google_apps.html.haml
= form_tag user_omniauth_authorize_path(:google_apps) do
  %p
    = url_field_tag 'domain', nil, placeholder: 'example.com'
  = link_to_submit_form 'Sign In'

顺便说一句,如果您有更好的解决方案,请发布您的答案。

于 2012-12-12T19:33:49.097 回答