Создать пароль и аутентификацию для существующих пользователей - PullRequest
0 голосов
/ 23 мая 2018

У меня есть приложение rails с: таблицей администратора с аутентификацией Devise. Таблица пользователей с электронной почтой и именем без аутентификации (но сеанс запоминает их)

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

Я разрешаю пользователям добавлять свои данные, такие как имяи по электронной почте, и я создаю cookie, чтобы запомнить их без какой-либо аутентификации или пароля:

  UsersController

  def create
    user = User.find_or_create_by(email: params[:user][:email])
    cookies.permanent.signed[:user_id] = user.id
    session[:user_id] = user.id # for users/edit temporary
    render json: user
  end

Допустим, у меня есть следующий метод в User: before_filter: authenticate_user !, только:: your_order def your_order end

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

1 Ответ

0 голосов
/ 23 мая 2018

Согласно спецификациям, приведенным нижеприведенным критериям, вам может помочь.

def your_order #before_filter
  if user.password.present?
   # authenticate using valid_password? method of devise
 else
   #redirect user to say set_password 
 end
end

def set_password
 #set the user password in this method and after successful completion redirect to login page where before filter your_order will be called
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...