где хранить пароль помимо базы данных - PullRequest
0 голосов
/ 27 февраля 2011

Я пытаюсь создать супер простую аутентификацию.Я не уверен, где хранить пароль администратора.Где я должен поставить пароль?Модель, среда или еще где-то.И как я могу получить доступ к переменной среды, если я храню ее в среде.СПАСИБО!

ОБНОВЛЕНИЕ:

я помещаю что-то в environment.rb

ADMIN_PASSWORD = "blablabla"

и пытаюсь аутентифицировать

def authenticate(username, password)
password = Digest::MD5.hexdigest(password).to_s
 if username == "admin" && password == ENV["ADMIN_PASSWORD"]
  session[:login] = true
 end
end

не работает ...

я думаю, что нет необходимости в to_s.Спасибо всем.

Ответы [ 4 ]

1 голос
/ 27 февраля 2011

Вы можете использовать переменную окружения, но вы должны использовать хеширование только для того, чтобы установить ее в зашифрованном виде. Попробуйте:

password = "abdefghij"
ENV['PASSWORD_SALT'] = BCrypt::Engine.generate_salt
ENV['PASSWORD_HASH'] = BCrypt::Engine.hash_secret(password, ENV['PASSWORD_SALT'])


def authenticate?(password)
  ENV['PASSWORD_HASH'] == BCrypt::Engine.hash_secret(password, ENV['PASSWORD_SALT'])
end

authenticate?("123456789") # false
authenticate?("abdefghij") # true
0 голосов
/ 27 февраля 2011

Я бы предпочел хранить в переменных окружения, если база данных не является опцией.

Вы можете обращаться к ним как

ENV["DB_PASSWORD"] # => "something_random"
0 голосов
/ 27 февраля 2011

Вы смотрели на HTTP-аутентификацию?http://guides.rubyonrails.org/action_controller_overview.html#http-authentications

0 голосов
/ 27 февраля 2011

Действительно просто было бы поместить его в файл, но не забудьте зашифровать его.

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