我是Padrino的新手(我来自PHP背景),以及一般的ruby web框架,并且一直试图弄清楚如何实现简单的用户身份验证和会话管理系统,但还没有真正找到关于这个主题的大量文件。我知道padrino带有一个预先构建的“Admin”软件包,其中包括用户登录/身份验证等,但我宁愿从头开始自己动手,而不是尝试自定义他们的解决方案以满足我自己的需求。
所以我的问题是,在Padrino中,我将如何通过在针对数据库验证用户/传递组合后设置会话数据来实现一个简单的基于会话的身份验证系统来登录用户,检索该会话数据以进行检查如果用户在请求保护某些页面/资源时登录,请使用会话数据获取用户的ID / role / ect,然后在用户注销时销毁该会话。作为一名PHP程序员,我习惯使用$_SESSION
超全局来实现这个目的,在padrino / ruby中有类似的东西吗?我注意到app.rb中有一个enable :sessions
,pardrino相当于:sessions
吗?
答案 0 :(得分:12)
烨,
session[:cart] = cart_id
Cart.find(session[:cart].to_i) if session[:cart].present?
出于身份验证的目的,您可以使用更简单的方法来避免使用padrino-admin和builtin auth:
# in app.rb
use Rack::Auth::Basic, 'Restricted Area' do |username, password|
user == 'admin' and password == 'pwd'
end
如果您需要控制更多会话/ cookie,您可以使用:
set :sessions,
:key => '__awesome_key',
:secret => 'awesome_password',
:expire_after => 1.year