Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 设计一种为通知api进行身份验证的方法_Ruby On Rails_Devise_Authentication - Fatal编程技术网

Ruby on rails 设计一种为通知api进行身份验证的方法

Ruby on rails 设计一种为通知api进行身份验证的方法,ruby-on-rails,devise,authentication,Ruby On Rails,Devise,Authentication,我的应用程序正在使用Desive gem进行身份验证。我有一个视频转换服务,它可以向我选择的url发送通知,大概是为了让应用程序知道转换已完成,基本上,通知与某人单击“转换已完成”按钮相同,但以编程方式完成 我已在routes.rb文件中创建了此操作的路由,该路由将标记视频已成功转换 #routes.rb 匹配“视频/设置完成”、“视频设置完成” 来自视频转换服务的api调用自然会携带一些其他参数来进一步识别视频。但我不认为这有什么关系 现在问题来了,顺便说一句,谢谢你阅读我的帖子,我永远感谢你

我的应用程序正在使用Desive gem进行身份验证。我有一个视频转换服务,它可以向我选择的url发送通知,大概是为了让应用程序知道转换已完成,基本上,通知与某人单击“转换已完成”按钮相同,但以编程方式完成

我已在routes.rb文件中创建了此操作的路由,该路由将标记视频已成功转换 #routes.rb 匹配“视频/设置完成”、“视频设置完成”

来自视频转换服务的api调用自然会携带一些其他参数来进一步识别视频。但我不认为这有什么关系

现在问题来了,顺便说一句,谢谢你阅读我的帖子,我永远感谢你——我的意思是,简单地说,我不能让任何人访问dns.com/videos/set_complete,这就是为什么它使用designe进行身份验证,但我不想使用用户:pass@dns.com/视频/设置完成,我知道什么,我只是觉得在一个普通的http(而不是s)请求中,用户/通行证是显而易见的,这是非常危险的。所以我想,好吧,假设请求总是来自某个ip或域名,我能让Deviate总是验证这些ip的请求,而不做任何嵌入式用户/通行证或使用单个访问令牌吗


再次感谢

您可以在视频控制器中执行以下操作:

before_filter :check_ip, :only => [:set_complete]

def check_ip
  if request.remote_ip != '[ip address]'
    authenticate_user!
  end
end
这将允许登录用户发出该请求,除非他们来自您指定的任何IP地址。如果您想只允许来自该IP的对此操作的请求,请更改authenticate\u user!例如:

sign_out_and_redirect

然而,因为他们不关心响应,所以有人可以欺骗正确的IP,并能够完成设置。我不知道你有多在乎这一点,这可能对你所做的事情来说已经足够了。

欺骗IP是危险的,这是有道理的。你会说这比使用单一访问令牌更糟糕吗?如果我真的使用了身份验证令牌,是否会让它更安全?如果不真正理解人们为什么会试图滥用你的应用程序,很难说。我认为,除非你有真正的理由害怕其中一个,否则这两个都可能是好的。IP可能稍微好一点,因为认证令牌可能会让他们比IP欺骗更容易访问你的应用。明白了,谢谢ctide,我将使用你提供的IP路由。
sign_out_and_redirect