Ruby on rails 如何在rails中创建受密码保护的RSS源
在rails中创建RSS提要很容易。我需要一个简单的方法来密码保护RSS提要。我在考虑http基本身份验证Ruby on rails 如何在rails中创建受密码保护的RSS源,ruby-on-rails,Ruby On Rails,在rails中创建RSS提要很容易。我需要一个简单的方法来密码保护RSS提要。我在考虑http基本身份验证 我在谷歌上搜索过,但找不到任何关于创建受密码保护的RSS的文章。只要在常规控制器上使用任何身份验证系统即可。如果用户已登录,并且会话处于活动状态,则他将能够下载提要。如knoopx所述,如果您使用类似的身份验证系统,则应该能够在控制器中指定身份验证类型。然后可以指定http基本身份验证。然后,如果您选择,您可以在RSS提要的URL中包含身份验证 e、 g: http://username:
我在谷歌上搜索过,但找不到任何关于创建受密码保护的RSS的文章。只要在常规控制器上使用任何身份验证系统即可。如果用户已登录,并且会话处于活动状态,则他将能够下载提要。如knoopx所述,如果您使用类似的身份验证系统,则应该能够在控制器中指定身份验证类型。然后可以指定http基本身份验证。然后,如果您选择,您可以在RSS提要的URL中包含身份验证 e、 g: http://username:password@example.com/rss
(很抱歉这样破坏URI,但是我没有足够的信誉点来发布多个链接:()我的应用程序控制器中有这个
def xml_authorize
if request.format == Mime::XML
authenticate_or_request_with_http_basic do |username, password|
username == 'foo' && password == 'bar'
end
end
end
然后,我只需将before\u filter:xml\u authorize
应用于我只想为xml请求提供密码保护,但仍想正常使用html的操作
这就是我得到灵感的地方。RSS源上的HTTP身份验证与其他控制器操作有何不同?(这不一定是一个修辞性问题-它真的不同吗?)
你试过了吗?提要应该定期获取,无需用户交互。 RSS提要可以由不同于浏览器的东西使用。例如, 我有一个手机,我可以从rss提要链接为开始屏幕创建一个小部件。功能很棒。不幸的是,这个小部件不能进行身份验证。 而且没有用户界面可以输入用户名和密码。因此,身份验证需要是url的一部分,并带有所有不好的安全隐患 另一方面,您不需要会话来回答提要请求 因此,解决方案是为用户创建一个特殊密钥,并将其存储在用户表中。 然后在显示rss提要的链接时使用它。在提要方法中,您使用此密钥检索用户,但不创建会话。这样,即使黑客以某种方式获得了有效密钥,黑客也只能查看rss提要,而不能访问应用程序的其余部分
如果您已经使用某个库进行身份验证,则可能已经为此实现了某种解决方案。在Authlogic中,是类SingleAccessToken,您需要向用户表中添加字符串类型的列“single\u access\u token”。然后Authlogic在保存用户记录时创建一些加密密钥。然后将此密钥添加为GET-参数'user_credentials'指向私有rss源的url…但是,无论如何,密码都不应该以明文形式存储在数据库中,并且如果有人单击链接,那么他们的密码绝对会显示给任何可能与他们在一起的人,这是不安全的。Matchu,我同意密码永远不应该以明文形式存储密码中的xt。我只是把它放在那里作为一个可以实现的示例。显然,最好的方案是RSS客户端内置了身份验证机制。
def xml_authorize
if request.format == Mime::XML
authenticate_or_request_with_http_basic do |username, password|
username == 'foo' && password == 'bar'
end
end
end