我是初学程序员,正在处理确认电子邮件。用户注册后,将其发送到页面以输入确认代码,该代码将发送到他们使用的电子邮件中。如果提交正确,则会保存用户并将其登录。
我已经研究过使用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
答案 0 :(得分:2)
考虑使用法术而不是设计。有关于它的Railscast。
https://github.com/NoamB/sorcery
使用起来更简单,我认为它可以满足您的身份验证需求。
PD:检查我的帖子编辑。在发布代码时尝试使用该语法(只是缩进代码,没有html标记)
编辑:
该代码应该在User模型中,而不是控制器中。尽量保持控制器小巧,非常小。将所有逻辑放在模型中。