Я использую Devise и гем devise_ldap_authenticatable для аутентификации пользователей. Пользователи входят в систему, используя имя пользователя и пароль своей компании, которые аутентифицируют их и создают сеанс.
Когда я впервые начал работать над проектом, я был новичком в аутентификации пользователя и просто следовал учебному пособию, которое означало, что в нашей модели User было имя пользователя, адрес электронной почты и зашифрованный пароль. С тех пор мы поняли, что поскольку аутентификация выполняется ldap, нашей модели пользователя не требуется атрибут пароля.
Что отлично работает, когда учетные данные пользователя верны.
Назад, когда модель User все еще имела атрибут encrypted_password, неверный логин перенаправлял бы обратно на sign_in и высвечивал «Неверный адрес электронной почты / пароль», но теперь он выдает мне ошибку:
"ActiveModel::MassAssignmentSecurity::Error in Devise::SessionsController#create Can't mass-assign protected attributes: password"
Я установил config.ldap_create_user
в false в initializers / devise.rb, но похоже, что он пытается использовать пароль для создания сеанса.