我有一个社交网络,需要在用户输入之前进行身份验证和电子邮件验证。进入后,用户只能看到朋友的内容。它实际上非常简单,即使它听不到它。这是我在过滤前的身份验证:
def authenticate
if logged_in?
redirect_to authentication_url if current_user.account_disabled
else
redirect_to root_url
end
end
我遇到的问题是让Facebook刮刀从某些动态页面获取元标记。我read你可以允许Facebook的用户代理进入非公共页面,但对于robots.txt
文件中受保护的页面不是这样吗?我对刮刀没有经验,但肯定会需要一个cookie和一个启用的帐户来抓取我网站上的动态信息?我甚至不确定如何实际编写方法让刮刀进入或写入它。
我会为抓取器生成一个带有SecureRandom.urlsafe_base64
的令牌,并在空白页面(带有元数据)上生成异常,这对于普通用户来说不应该是可访问的,但从技术上讲,这不会考虑到如果你查看正确的JS文件(用于Open Graph动作POST中的URL参考)和元标记,你可以得到受保护的用户数据。这个想法似乎没有接近正确......
有什么想法吗?
答案 0 :(得分:1)
只要您的内容具有每个用户看到的唯一网址(通常受登录过滤器保护),您就可以通过检查源IP或用户代理来匹配Facebook刮刀来进行访问。
但是,与大多数社交网站一样,您可能使用相同的URL来返回为当前登录用户呈现的自定义内容。这本质上是无法解决的 - 因为每个用户都有不同版本的''/ profile'。
答案 1 :(得分:1)
用户代理很容易伪造。小心只允许基于用户代理进行访问。
我相信他们有办法允许通过api刮刮。