Sinatra App拥有多个用户

时间:2011-08-02 00:14:08

标签: ruby sinatra

在Sinatra网络应用中允许多个用户的最简单方法是什么?我以前使用过允许一个用户名和密码的授权类,但是如果我想让用户注册一个简单的Web应用程序并允许他们拥有自己的登录凭据呢?

非常感谢你!

2 个答案:

答案 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应用添加用户,身份验证和权限。