在Sinatra网络应用中允许多个用户的最简单方法是什么?我以前使用过允许一个用户名和密码的授权类,但是如果我想让用户注册一个简单的Web应用程序并允许他们拥有自己的登录凭据呢?
非常感谢你!
答案 0 :(得分:0)
如果HTTP基本身份验证已足够,我建议您定义两个方法:
helpers do
def protected!
unless authorized?
response["WWW-Authenticate"] = 'Basic realm="Protected Area"'
throw(:halt, [401, "Not authorized\n"])
end
end
def authorized?
@auth ||= Rack::Auth::Basic::Request.new(request.env)
if @auth.provided? && @auth.basic? && @auth.credentials
username,password = @auth.credentials
# verify credentials are correct
end
end
end
从应受保护的任何操作中调用protected!
(或使用before
块来保护所有内容)。我将凭据验证留给您,因为我不知道您是如何存储用户帐户信息的。
答案 1 :(得分:0)
sinatra-authentication gem看起来像是一个简单而强大的解决方案,用于向sinatra应用添加用户,身份验证和权限。