Padrino中的会话和用户身份验证

Bil*_*ami 2 ruby authentication login session-cookies padrino

我是Padrino的新手(我来自PHP背景),以及一般的ruby web框架,并且一直试图弄清楚如何实现一个简单的用户身份验证和会话管理系统,但是还没有真正找到很多文档.主题.我知道padrino带有一个预先构建的"Admin"软件包,其中包括用户登录/身份验证等,但我宁愿从头开始自己动手,而不是尝试自定义他们的解决方案以满足我自己的需求.

所以我的问题是,在Padrino我怎么会去通过设置会话数据一旦用户名/密码组合已被证实对数据库,检索会话数据执行用于记录用户的简单的基于会话的认证系统来检查用户当请求保护某些页面/资源时,使用会话数据获取用户的ID /角色等,然后​​在用户注销时销毁该会话.作为一名PHP程序员,我习惯于$_SESSION将超全局用于此目的,在padrino/ruby​​中有类似的东西吗?我注意到enable :sessionsapp.rb中有一个,是:sessionspardrino的等价物吗?

DAd*_*dYE 12

对,

session[:cart] = cart_id
Cart.find(session[:cart].to_i) if session[:cart].present?
Run Code Online (Sandbox Code Playgroud)

出于身份验证的目的,您可以使用更简单的方法来避免使用padrino-admin和builtin auth:

# in app.rb
use Rack::Auth::Basic, 'Restricted Area' do |username, password|
  user == 'admin' and password == 'pwd'
end
Run Code Online (Sandbox Code Playgroud)

如果您需要控制更多会话/ cookie,您可以使用:

set :sessions,
  :key          => '__awesome_key',
  :secret       => 'awesome_password',
  :expire_after => 1.year
Run Code Online (Sandbox Code Playgroud)