根据自述文件集成了 merb_auth_password_slice ,我可以在 redirect_after_login 被触发时成功登录,但 session.authenticated?返回false。

现在尝试基本的身份验证策略(密码表单),似乎无法让它工作,任何想法?

我的初始文件:

require 'dm-validations'

dependencies "merb-more", "merb_helpers", "merb-slices", "merb_auth_password_slice"


Merb::BootLoader.before_app_loads do
  DataMapper.setup(:default, "sqlite3://config/dev.db")
end

Merb::BootLoader.after_app_loads do
    # have already done this
    # raise "You must specify a valid openid in Merb.root/config/open_id to use this example app" unless File.exists?(Merb.root / "config" / "open_id")
    # # DataMapper.auto_migrate!
    # User.create(:login => "admin", 
    #             :password => "password", :password_confirmation => "password", 
    #             :email => "admin@example.com", 
    #             :identity_url => File.read(Merb.root / "config" / "open_id"))
end

Merb::Config.use do |c|
  c[:session_secret_key]  = 'my key'
  c[:session_store] = 'cookie'
end

的setup.rb

class Authentication

  def store_user(user)
    return nil unless user
    user.id
  end

  def fetch_user(session_info)
    User.get(session_info)
  end

end # Authentication
有帮助吗?

解决方案

  # before(nil, :only => [:update, :destroy]) { session.abandon! }

这是切片会话控制器的罪魁祸首

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top