Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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 Rails—如何防止对方法的直接URL访问_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails—如何防止对方法的直接URL访问

Ruby on rails Rails—如何防止对方法的直接URL访问,ruby-on-rails,Ruby On Rails,我有一个重定向到url的控制器方法 def after_sign_up_path_for(resource) return '/appli/key_registrations' end 但是,我希望用户不能自己访问此url(例如,如果他们在url栏中输入myapp.com/appli/key\u registrations,他们将被重定向到其他地方)。我该怎么做?我建议在重定向方法中设置一个cookie,并在注册页面中检查/删除该cookie 另一种选择是检查request.refer

我有一个重定向到url的控制器方法

def after_sign_up_path_for(resource)
    return '/appli/key_registrations'
end

但是,我希望用户不能自己访问此url(例如,如果他们在url栏中输入
myapp.com/appli/key\u registrations
,他们将被重定向到其他地方)。我该怎么做?

我建议在重定向方法中设置一个cookie,并在注册页面中检查/删除该cookie


另一种选择是检查
request.referer
,查看引用URL,但请记住,引用者可能被欺骗。

该页面有什么特殊之处,您不希望用户以后访问它?当人们访问此页面时,它会在我的模型中创建对象。我只希望在为(资源)注册路径后,通过重定向方法调用页面时发生这种情况。然后,在该页面中,检查对象是否已经存在。如果他们这样做,重定向。若并没有,那个么用户必须是在注册帮助程序后从那个里来的。或者创建一个临时随机令牌(比如说,1分钟后到期),并将其附加到那个url。在该页面的处理程序中,检查令牌的有效性。如果令牌a)存在,b)未过期,c)尚未使用,则用户必须来自注册后重定向。谢谢,我将使用第一个解决方案!