Использование devise_security_extension с приложением Rails 3 - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь использовать devise_security_extension с существующим приложением Rails 3, поэтому я могу контролировать следующее:

  • Убедитесь, что пароли имеют длину от 8 до 70 символов и имеютМинимум один символ нижнего регистра, один символ верхнего регистра, одна цифра и один специальный символ.

  • Старые пароли архивируются, до 6

  • Старые пароли, не находящиеся в архиве, не могут быть использованы

  • срок действия паролей истекает через 3 месяца

  • Счета, которые не использовались более 3 месяцевсрок действия истек

  • Срок действия сессий истекает через 15 минут бездействия

Я добавил в свой Gemfile следующее:

gem 'devise_security_extension', '0.10.0'

и к моему config / initializers / devise.rb я добавил следующее:

config.expire_password_after = 3.months
config.password_regex= /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,70}$/
config.password_archiving_count = 6
config.deny_old_passwords = true
config.expire_after = 3.months
config.timeout_in = 15.minutes
config.expire_auth_token_on_timeout = true

В моем model / user.rb у меня есть следующее:

devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable, :invitable,
     :confirmable, :password_expirable, :secure_validatable, :password_archivable,
     :session_limitable, :expirable

Затем я сделалследующее:

bundle install
rails generate devise_security_extension:install

Но я заметил, что файлы миграции не создавались.Я пропускаю какие-либо шаги здесь?

1 Ответ

0 голосов
/ 23 октября 2018

Строка

rails generate devise_security_extension:install

не создает миграций, она добавляет дополнительные конфигурации в config/initializers/devise.rb

Для password_expurable и password_archivable вы должны создать несколько миграций: поле для хранениядата смены пароля ...

rails g migration AddPasswordChangedAtToUser password_changed_at:datetime:index

... и таблица для отслеживания старых паролей

create_table :old_passwords do |t|
  t.string :encrypted_password, :null => false
  t.string :password_archivable_type, :null => false
  t.integer :password_archivable_id, :null => false
  t.datetime :created_at
end
add_index :old_passwords, [:password_archivable_type, :password_archivable_id], :name => :index_password_archivable

Все это объяснено в readme github для драгоценного камня ...

https://github.com/phatworx/devise_security_extension

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