Я пытаюсь создать API, который работает с существующим мобильным приложением. Мобильное приложение использует имя пользователя, но на самом деле это всего лишь электронная почта, и вместо того, чтобы переделывать, создайте запутанную систему имени пользователя, которая на самом деле является электронной почтой. Я хотел использовать alias_attribute
. Кажется, работает для всего, кроме входа в систему.
JSON выглядит как
{ "username":"test12345@gmail.com", "password":"password" }
и я разрешаю ключи
devise_parameter_sanitizer.permit(:sign_in, keys: [:username, :password])
но это не удается в
self.resource = warden.authenticate!(auth_options)
Кажется, надзиратель игнорирует alias_attribute. Если я изменю имя пользователя на email, оно будет работать нормально. Я попытался переписать функцию аутентификации базы данных на модели, но она никогда не доходит до этой строки.