OmniAuth и Devise, как устанавливать необязательные пароли

Я использую OmniAuth и Devise для аутентификации пользователей. Я бы хотел, чтобы пользователи, которые зарегистрировались с помощью провайдеров OmniAuth, могли установить дополнительный пароль (необходимый для аутентификации API), но я наткнулся на стену.

Если пользователь создает учетную запись через OmniAuth и пытается установить password они получают следующую ошибку:

BCrypt::Errors::InvalidHash in RegistrationsController#update

Я думаю, это потому, что пароль пустой. Что хорошего в этом? Я думал о создании случайного пароля, но проблема с этим подходом заключается в том, что пользователю необходимо знать текущий пароль, чтобы изменять настройки.

Изменить :

Если пользователь создает учетную запись через OmniAuth и пытается установить пароль, он получает следующую ошибку:

BCrypt::Errors::InvalidHash in RegistrationsController#update

Я считаю, что это потому, что пароль пустой. Что хорошего в этом? Я думал о создании случайного пароля, но проблема с этим подходом заключается в том, что пользователю необходимо знать текущий пароль, чтобы изменять настройки.

Изменить :

Если пользователь создает учетную запись через OmniAuth и пытается установить пароль, он получает следующую ошибку:

BCrypt::Errors::InvalidHash in RegistrationsController#update

Я считаю, что это потому, что пароль пустой. Что хорошего в этом? Я думал о создании случайного пароля, но проблема с этим подходом заключается в том, что пользователю необходимо знать текущий пароль, чтобы изменять настройки.

Изменить : Я посмотрел на , позволяющий пользователю изменять настройки без запроса текущего пароля , и это то, что я хотел бы сделать только , если у пользователя изначально не было пароля.

5
задан David 20 February 2011 в 21:41
поделиться