【问题标题】:Can we use refinerycms for user authentication purpose我们可以使用refinerycms 进行用户身份验证吗
【发布时间】:2012-06-22 08:30:52
【问题描述】:

我正在开发一个网站,我必须为此做用户登录和注册表格以进行身份​​验证。我的问题是我们可以只使用refinerycms 来做到这一点,如果可能的话,请告诉我如何做到这一点。如果不可能,请告诉我哪种方法最好。我正在尝试使用refinerycms 实现用户身份验证。刚接触炼油厂cms。

【问题讨论】:

    标签: ruby-on-rails-3 refinerycms authentication


    【解决方案1】:

    炼油厂使用设计,因此您也可以使用它。您可以创建一个看起来像这样的模型:

    module Refinery
      module Partners
        class Partner < Refinery::Core::BaseModel
          self.table_name = 'refinery_partners'      
    
          acts_as_indexed :fields => [:name]
    
          validates :email, :presence => true, :uniqueness => true
    
          #devise methods
          devise :database_authenticatable, :recoverable, :rememberable, :trackable,:validatable, :authentication_keys => [:email]
    
    
        end
      end
    end
    

    不要忘记迁移:

    class CreatePartnersPartners < ActiveRecord::Migration
    
      def up
        create_table :refinery_partners do |t|
          t.string :email
          t.string :name
    
          ## Database authenticatable
          t.string :encrypted_password, :null => false, :default => ""
    
          ## Recoverable
          t.string   :reset_password_token
          t.datetime :reset_password_sent_at
    
          ## Rememberable
          t.datetime :remember_created_at
    
          ## Trackable
          t.integer  :sign_in_count, :default => 0
          t.datetime :current_sign_in_at
          t.datetime :last_sign_in_at
          t.string   :current_sign_in_ip
          t.string   :last_sign_in_ip
    
          t.timestamps
        end
    
      end
    
      def down
        if defined?(::Refinery::UserPlugin)
          ::Refinery::UserPlugin.destroy_all({:name => "refinerycms-partners"})
        end
    
        if defined?(::Refinery::Page)
          ::Refinery::Page.delete_all({:link_url => "/partners/partners"})
        end
    
        drop_table :refinery_partners
    
      end
    
    end
    

    这应该会创建您可以使用的基本模型。最后,更改您的扩展程序中的 routes.rb 以添加设计路线:

      devise_for :partners, :class_name => "Refinery::Partners::Partner",
      :controllers => {:sessions => 'refinery/partners/sessions', :passwords => 'refinery/partners/passwords'}
    

    并覆盖炼油厂/合作伙伴/passwords_controller.rb

    module Refinery
      module Partners
        class PasswordsController < Devise::PasswordsController
        end
      end
    end
    

    和炼油厂/合作伙伴/sessions_controller.rb

    module Refinery
      module Partners
        class SessionsController < Devise::SessionsController
        end
      end
    end
    

    现在您应该拥有所需的一切

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-23
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多