我正在构建一个Rails应用程序,并且我正在使用Devise进行身份验证。 当用户登录时,我需要对Rails进行AJAX调用,并将属于当前用户的数据作为JSON获取。此外,我不希望未经身份验证的用户和其他登录用户访问当前用户的资源。
我使用jQuery的$ .getJSON()通过简单地指定链接地址来制作AJAX请求:
$.getJSON('http://localhost:3000/users/1/photos', function(data) { console.log(data); });
到目前为止,验证似乎与HTTP请求的工作方式相同,因此用户只能通过AJAX访问自己的数据。
我没有太多使用AJAX的经验,我也不明白为什么确实可以工作。我的rails应用程序从哪里知道我在进行AJAX调用时已登录?我以为我必须创建一个额外的身份验证令牌并将其用于身份验证或在执行AJAX调用时设置设计会话cookie。
稍后编辑:当我进行AJAX通话时,我的rails应用程序从哪里知道我已登录?
答案 0 :(得分:2)
AJAX请求(XMLHttpRequest)将在同一域的标准HTTP请求中包含相同的标头。至于从标题中读取cookie,查找会话信息以及授权请求,行为将是相同的。