【问题标题】:Devise + OmniAuth + Refinery CMS设计 + OmniAuth + 炼油厂 CMS
【发布时间】:2012-09-25 11:18:27
【问题描述】:

我们使用 Devise + OmniAuth 作为身份验证机制,通过 facebook、twitter 和 openid 对用户进行身份验证。现在我们需要将 Refinery CMS 集成到我们现有的应用程序中。

要求: 应用程序的主页具有注册/登录按钮,其中包含一些静态内容。登录后,用户可以访问受限区域。我们想在受限页面上添加访问炼油厂 CMS 的链接。它不应该再次要求任何凭据。

我们按照以下链接集成 Refinery CMS:

  1. http://refinerycms.com/guides/with-an-existing-rails-app
  2. http://refinerycms.com/guides/with-an-existing-rails-31-devise-app

现在启动服务器后,当我们点击http://localhost:3000 时,它会重定向到http://localhost:3000/refinery/users/register。用户应该能够看到包含公共内容的主页。只有在用户使用任何受支持的服务进行身份验证后,用户才能访问炼油厂 CMS(通过 /help)。

这是 config/routes.rb

的快照
mount Refinery::Core::Engine, :at => '/'
...
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks", registrations: "registrations" }
....
root :to => "home#index"

config/application.rb

config.autoload_paths += Dir["#{config.root}/lib/**/"] # to load files from lib directory, including subfolders

    config.before_initialize do
      require 'refinery_patch'
      require 'restrict_refinery_to_refinery_users'
    end

    include Refinery::Engine
    after_inclusion do
      [ApplicationController, ApplicationHelper].each do |c|
        c.send :include, ::RefineryPatch
      end

      ::Refinery::AdminController.send :include, ::RestrictRefineryToRefineryUsers
      ::Refinery::AdminController.send :before_filter, :restrict_refinery_to_refinery_users
    end

我们是初学者。任何帮助都将不胜感激。

【问题讨论】:

    标签: ruby-on-rails devise ruby-on-rails-3.2 omniauth refinerycms


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    相关资源
    最近更新 更多