gpt4 book ai didi

ruby-on-rails - Rails、Devise gem、使用路由或在 Controller 中进行身份验证?哪个最好?

转载 作者:行者123 更新时间:2023-12-03 01:31:24 25 4
gpt4 key购买 nike

因此,Devise 似乎有两种方法可以完成同一件事,首先,保护未经授权的用户访问 Controller 操作的经典方法似乎在我的 Controller 中是这样的:

before_filter :authenticate_user!

但我现在更经常地在 routes.rb 中看到这样做,就像这样:

authenticate :user do
resources :reports
end

我应该使用哪一个?

最佳答案

通常我会同意,路由应该是一个简单的映射,而不包含复杂的逻辑。但是 Devise 方法(OP 中的第二个示例)虽然可能不是防止未经授权访问的最佳方法,但至少对于一个非常常见的用例很有用 - 即路由到登录用户的一个“主页”(例如、仪表板),以及未登录用户的另一个主页(例如注册页面)。这是 IMO 标准,足以值得采用直接路由机制,该机制允许您使用“redirect_to root_path”轻松处理错误,并通过单个重定向(一个 HTTP(s) 事务)将其转到正确的位置,保留 flash 消息(这将可能会在 before_filter 内的第二次重定向中丢失),而无需在 Controller 中添加大量额外代码。

“authenticate[d]”方法的描述非常简洁 here

关于ruby-on-rails - Rails、Devise gem、使用路由或在 Controller 中进行身份验证?哪个最好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6701869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com