如何在Rails中使用会话实现基本身份验证?

时间:2010-10-27 06:01:05

标签: authentication ruby-on-rails-3

只需通过Michael Hartl's tutorial学习Rails,我们要做的一件事就是使用会话而不是cookie来实现基本身份验证。

我试图在网上找到任何讨论它的文献,但找不到任何东西。

Rails指南从安全角度讨论会话,因此他们假设您的身份验证工作正常,而且只是对保护它们感兴趣。

但我想从头开始自己动手 - 一个非常简单的版本,根本没什么特别的。

有人可以向我解释一下基本身份验证系统在Rails 3中的工作方式/外观,或者向我展示一些解释如何自行推送的文章和内容。

同样,不一定要花哨,我只是想了解它们是如何工作的。

此外,假设已创建用户模型,并且用户数据存储在数据库中。所以这只是确认成功登录并向他们展示不同内容的问题。

感谢。

1 个答案:

答案 0 :(得分:0)

我想通了,基本上在我的会话控制器中我这样做了:

class SessionsController < ApplicationController

    def create
        user = User.authenticate(params[:session][:email], params[:session][:password])

        if user.nil?
            flash.now[:error] = "Invalid email/password combination."
            render 'new'
        else
            session[:user_id] = user.id
            redirect_to user
        end
    end

    def destroy
        session[:user_id] = nil
        redirect_to root_path
    end 
end