Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何限制访问某个网页?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何限制访问某个网页?

Ruby on rails 如何限制访问某个网页?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在尝试仅允许管理员用户从我的计算机访问登录/注册页面,或允许我仅查看管理员登录页面的任何其他方式 或者典型的web应用程序如何限制公众对某个web页面的访问?如果有一种下注练习方法,我想实现它 我目前已经安装了Desive 您可以使用验证用户设计助手,将其作为回调添加到所需的控制器中,并指定要控制的方法 例如,如果您有一个Post模型,那么添加authenticate\u用户在PostController中,它将要求用户登录以访问该特定控制器中的方法: class PostsControll

我正在尝试仅允许管理员用户从我的计算机访问登录/注册页面,或允许我仅查看管理员登录页面的任何其他方式

或者典型的web应用程序如何限制公众对某个web页面的访问?如果有一种下注练习方法,我想实现它


我目前已经安装了Desive

您可以使用
验证用户设计助手,将其作为回调添加到所需的控制器中,并指定要控制的方法

例如,如果您有一个Post模型,那么添加
authenticate\u用户
PostController
中,它将要求用户登录以访问该特定控制器中的方法:

class PostsController < ApplicationController
   before_action :authenticate_user!

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

您可以使用
authenticate\u用户设计助手,将其作为回调添加到所需的控制器中,并指定要控制的方法

例如,如果您有一个Post模型,那么添加
authenticate\u用户
PostController
中,它将要求用户登录以访问该特定控制器中的方法:

class PostsController < ApplicationController
   before_action :authenticate_user!

但是,如果您需要更复杂的东西,那么您必须在Nginx或Apache上查看部署项目所使用的任何东西。

我通常通过控制器方法限制网页访问。我最近的用例只在付款成功时才转到网页,但在付款失败时重定向,如果任何机构直接为该网页发出
get请求
,将导致404

在您的情况下,可以有多个设置选项

  • 您可以使用Cookie查看用户凭据
  • 使用Desive for users,然后您可以通过添加新迁移将特定角色固定到用户,并在注册后自行分配角色或让他们选择
  • 我希望你能走这条路。在控制器操作中,检查当前用户的角色

    If User Not signed in (using current_user == nil)
      redirect to home page and then return
    
    else
      if 
        its admin you go ahead and use the success page as partial and let them see the page using `<%= render 'pages/mypage'%>` and use return to end
      else 
        just redirect back to home page with a notice "Don't try this". 
        redirect_to root_path, notice: 'Don't try this' and then use 
        return to end
    end
    
    如果用户未登录(使用当前用户==nil)
    重定向到主页,然后返回
    其他的
    如果
    它的管理员您可以继续使用success页面作为部分页面,让他们使用``和return-to-end查看页面
    其他的
    只需重定向回主页,通知“不要尝试此”。
    将\重定向到根\路径,注意:'不要尝试此操作',然后使用
    结束
    结束
    

    (只是为了好玩,看看用户做了多少次错误的操作,你也可以有一个表,其中存储
    当前用户
    错误尝试次数
    ,并存储他们的电子邮件,每当他们试图在控制器重定向之前未经许可进入该页面时。之后,你可以通过后台rake任务向他们发送电子邮件,检查s表示某个错误尝试阈值:“嘿!您的注册正在被删除,因为您正在执行未受限制的操作”)

    我通常通过控制器方法限制网页访问。我最近的用例仅在付款成功时才转到网页,但在付款失败时重定向,如果任何机构直接向该网页发出
    获取请求,则将导致404

    在您的情况下,可以有多个设置选项

  • 您可以使用Cookie查看用户凭据
  • 使用Desive for users,然后您可以通过添加新迁移将特定角色固定到用户,并在注册后自行分配角色或让他们选择
  • 我希望您遵循设计路线。在控制器操作中检查当前用户的角色

    If User Not signed in (using current_user == nil)
      redirect to home page and then return
    
    else
      if 
        its admin you go ahead and use the success page as partial and let them see the page using `<%= render 'pages/mypage'%>` and use return to end
      else 
        just redirect back to home page with a notice "Don't try this". 
        redirect_to root_path, notice: 'Don't try this' and then use 
        return to end
    end
    
    如果用户未登录(使用当前用户==nil)
    重定向到主页,然后返回
    其他的
    如果
    它的管理员您可以继续使用success页面作为部分页面,让他们使用``和return-to-end查看页面
    其他的
    只需重定向回主页,通知“不要尝试此”。
    将\重定向到根\路径,注意:'不要尝试此操作',然后使用
    结束
    结束
    

    (只是为了好玩,看看用户做了多少次错误的操作,你也可以有一个表,其中存储
    当前用户
    错误尝试次数
    ,并存储他们的电子邮件,每当他们试图在控制器重定向之前未经许可进入该页面时。之后,你可以通过后台rake任务向他们发送电子邮件,检查s表示某个错误尝试阈值:“嘿!您的注册正在被删除,因为您正在执行未受限制的操作”)

    这是用户登录前的一个请求,因此应用程序不知道访问权限是来自普通用户还是管理员用户。例如,我猜任何系统应用程序都有一个仅限管理员登录的网页,但我想知道这些应用程序是如何限制公众观众甚至访问登录页面的。是否有一些限制一种URL,配置为只能从某个IP访问该URL,类似于这样。这是用户登录之前的请求,因此应用程序不知道访问是来自普通用户还是管理员用户。例如,我猜任何系统应用程序都有一个仅管理员登录的网页,但我想知道这些应用程序是如何限制公众浏览者甚至访问登录页面的。是否有某种URL被配置为只能从某个IP访问该URL,类似的。