【问题标题】:How do I implement basic authentication with sessions in Rails?如何在 Rails 中使用会话实现基本身份验证?
【发布时间】:2010-10-27 06:01:04
【问题描述】:

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

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

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

但我想从头开始自己制作 - 一个非常简单的版本,一点也不花哨。

有人可以向我解释一下,基本身份验证系统在 Rails 3 中如何工作/看起来像什么,或者向我展示一些解释如何推出自己的身份验证系统的文章和资料。

同样,不必花哨,我只是想了解它们的工作原理。

另外,假设已经创建了一个用户模型,并且用户数据存储在一个数据库中。因此,只需确认已成功登录,并向他们显示不同的内容即可。

谢谢。

【问题讨论】:

    标签: authentication ruby-on-rails-3


    【解决方案1】:

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

    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
    

    【讨论】:

    • 这是我在 Google 上首次点击会话身份验证。有一个railscast 几乎可以作为参考。 Railscast #274
    猜你喜欢
    • 2017-11-02
    • 2019-12-20
    • 2011-08-20
    • 2017-03-29
    • 2011-12-06
    • 2015-09-18
    • 1970-01-01
    • 2021-06-30
    相关资源
    最近更新 更多