【问题标题】:Sinatra App with multiple users具有多个用户的 Sinatra 应用程序
【发布时间】:2023-03-29 21:08:02
【问题描述】:

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

非常感谢!

【问题讨论】:

    标签: ruby sinatra


    【解决方案1】:

    sinatra-authentication gem 看起来像是一个简单而强大的解决方案,用于向 sinatra 应用程序添加用户、身份验证和权限。

    【讨论】:

      【解决方案2】:

      如果 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 块来保护所有内容)。由于我不知道您如何存储用户帐户信息,因此我将凭据验证留给您。

      【讨论】:

        猜你喜欢
        • 2016-06-08
        • 2021-12-13
        • 1970-01-01
        • 1970-01-01
        • 2015-11-27
        • 1970-01-01
        • 2013-03-24
        • 1970-01-01
        • 2012-07-17
        相关资源
        最近更新 更多