Создание аутентификации электронной почты с помощью Rails - PullRequest
1 голос
/ 21 октября 2011

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

Я изучал использование Devise, и, возможно, это правильный путь, но, похоже, я бы потратил столько же времени на изучение чужого кода, когда смог бы научиться делать это сам. Мой репо Здесь .

То, что я думал о кодировании (в моем контроллере пользователя), складывается примерно так ... как вы думаете? Я полностью выключен, и мне лучше разобраться в Devise / Authlogic или я на правильном пути? Я использую рельсы 3.1. Любая помощь приветствуется. Заранее спасибо.

def   confirmation_code_to_register(string)
  @confirmation_code = #random number
end

def create_start
  @user = User.new(params[:user])
  #send email with @confirmation_code via ActionMailer
  redirect_to page_to_enter_confirmation_code
  email_authenticate
end


def email_authenticate
  if #confirmation code user enters == @confirmation_code
    create_finish
  else
    #sorry, you entered the wrong confirmation code. 
  end
end

def create_finish
  if @user.save
    sign_in @user
    flash[:success] = "Welcome to the Site"
    redirect_to @user
  else
    @title = "Sign Up"
    render 'new'
  end
end

1 Ответ

2 голосов
/ 21 октября 2011

Подумайте об использовании Волшебства вместо Прибора. Об этом есть Railscast.

https://github.com/NoamB/sorcery

Его проще использовать, и я думаю, что он отвечает вашим потребностям в аутентификации.

PD: проверьте, что я сделал в вашем посте. Попробуйте использовать этот синтаксис при публикации кода (просто сделайте отступ кода, без разметки html)

EDIT:

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

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