我们使用 Devise + OmniAuth 作为身份验证机制,通过 facebook、twitter 和 openid 对用户进行身份验证。现在我们需要将 Refinery CMS 集成到我们现有的应用程序中。
要求: 应用程序首页有注册/登录按钮,带有一些静态内容。登录后,用户可以访问受限区域。我们想在受限页面上添加访问炼油厂 CMS 的链接。它不应该再次要求任何凭证。
我们按照以下链接集成炼油厂 CMS:
- http://refinerycms.com/guides/with-an-existing-rails-app
- 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"
配置/应用程序.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
我们是初学者。任何帮助都是不言而喻的。