Devise + OmniAuth + Google_Apps:如何“覆盖”Google Apps域名表单?

时间:2012-12-11 22:25:37

标签: devise omniauth google-apps

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

  • 转到我的标准登录页面
  • 点击使用Google Apps登录
  • 以users / auth / google_apps格式输入Google Apps域名(标准版 OmniAuth表格)
  • 登录Google Apps(启动标准回调至 认证后的omniauth_callbacks)
  • 用户现已登录我的应用程序 - 欢呼!

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

我该怎么做?

1 个答案:

答案 0 :(得分: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'

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