gpt4 book ai didi

ruby-on-rails - 您如何限制对某个网页的访问?

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:57 24 4
gpt4 key购买 nike

我试图只允许从我的计算机或任何其他方式允许管理员用户访问登录/注册页面,让我只能看到管理员注册登录的网页。

或者典型的网络应用程序如何限制公众对特定网页的访问?如果有一种下注练习方式,我想实现它。

我目前已经安装了 Devise。

最佳答案

您可以使用 authenticate_user! 设计助手,将其作为回调添加到所需的 Controller 中,并指定您要控制的方法。

例如,如果您有一个 Post 模型,然后在 PostController 中添加 authenticate_user!,它会要求用户登录以访问其中的方法那个特定的 Controller :

class PostsController < ApplicationController
before_action :authenticate_user!

如果你只想限制一些特定的方法,那么你可以使用 only 和/或 except

See: Devise will create some helpers to use inside your controllers and views. To set up a controller with user authentication, just add this before_action (assuming your devise model is 'User')

Devise - Controller filters and helpers

根据您的评论,您可以在 ApplicationController 中创建一个方法,以限制所有 Controller 和方法。

这样你就可以定义一个地址数组,如果来自 requestremote_ip 在数组中,那么你就授予访问权限,如果不在则执行任何其他操作:

ApplicationController < ActionController::Base
before_action :protect

private

def protect
addresses = ['127.0.0.1', ...]
if addresses.include?(request.remote_ip)
# give access
else
# restrict access
end
end
end

但如果您需要更复杂的东西,那么您必须在 Nginx 或 Apache 上查看,无论您使用什么来部署项目。

关于ruby-on-rails - 您如何限制对某个网页的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45124353/

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