Синатра приложение с несколькими пользователями - PullRequest
3 голосов
/ 02 августа 2011

Какой самый простой способ разрешить использование нескольких пользователей в веб-приложении Sinatra. Ранее я использовал класс авторизации, который позволяет использовать одно имя пользователя и пароль, но что, если я хочу разрешить пользователям подписываться на простое веб-приложение и предоставлять им все свои учетные данные для входа?

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 10 января 2013

Gem-аутентификация sinatra выглядит как простое и мощное решение для добавления пользователей, аутентификации и разрешений для приложений sinatra.

0 голосов
/ 02 августа 2011

Если достаточна базовая аутентификация 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 для защиты всего). Я оставляю вам проверку учетных данных, поскольку не знаю, как вы храните информацию учетной записи пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...