使用Rails创建电子邮件身份验证

时间:2011-10-21 19:02:36

标签: ruby-on-rails ruby authentication

我是初学程序员,正在处理确认电子邮件。用户注册后,将其发送到页面以输入确认代码,该代码将发送到他们使用的电子邮件中。如果提交正确,则会保存用户并将其登录。

我已经研究过使用Devise了,也许这就是要走的路,但是当我自己学会这样做的时候,我似乎会花很多时间学习别人的代码。我的回购是Here

我在想的编码(在我的用户控制器中)是这样形成的......你怎么看?我是完全离开的,会更好地找出Devise / Authlogic或者我是在正确的轨道上吗?我正在使用rails 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 个答案:

答案 0 :(得分:2)

考虑使用法术而不是设计。有关于它的Railscast。

https://github.com/NoamB/sorcery

使用起来更简单,我认为它可以满足您的身份验证需求。

PD:检查我的帖子编辑。在发布代码时尝试使用该语法(只是缩进代码,没有html标记)

编辑:

该代码应该在User模型中,而不是控制器中。尽量保持控制器小巧,非常小。将所有逻辑放在模型中。