我想学习如何创建自己的身份验证系统,如果这样做错误,请提供一些指导。
我意识到有很多建议可以提供,但简而言之,这听起来像是一个可行的解决方案吗?
现在为了使这个可用,我必须在我的ApplicationController中制作一些帮助方法吗?
如何从我的视图中访问current_user?
P.S 我知道其他身份验证系统,我只想了解如何创建自己的身份验证系统。
答案 0 :(得分:1)
您所遵循的基本逻辑是正确的。当然,您可以随时使用您需要的功能进行扩展。例如,你需要帮助方法来处理“logged_in?”之类的东西。和“current_user”。此外,您可能希望将会话到期或会话保留添加为“记住我”功能 为此,你不会比构建自己的身份更好地学习身份验证系统,然后弄清楚它有什么问题。
答案 1 :(得分:0)
你应该在github上查看authlogic gem。 http://github.com/binarylogic/authlogic 它还有关于如何设置用户的很好说明。
答案 2 :(得分:0)
在费萨尔说出我要说的话后,我只回答你问题的最后部分: “我如何从我的视图中访问current_user?”
尝试这样的事情:
class User < ...
def self.current=(u)
@current = u
end
def self.current
@current
end
end
在您的视图(或代码的任何部分)中,您可以调用User.current。您的控制器必须将经过验证的用户分配给User.current。您的过滤器可以对“if User.current.nil?”做出反应。等等。
如果您想要线程安全,可以使用线程变量而不是@current:
Thread.current[:current_user] = u