我正在构建一个Rails应用程序,并且正在使用Devise进行身份验证。当用户登录后,我需要对Rails进行AJAX调用,并以JSON格式获取属于当前用户的数据。另外,我也不希望未经身份验证的用户和其他登录用户访问当前用户的资源。
我使用jQuery的$ .getJSON()通过简单地指定链接地址来发出AJAX请求,如下所示:
$.getJSON('http://localhost:3000/users/1/photos', function(data) { console.log(data); });
到目前为止,认证似乎以与处理HTTP请求相同的方式起作用,因此用户只能通过AJAX访问他自己的数据。
我在AJAX方面没有太多的经验,我也不明白为什么这样做确实可行。在进行AJAX呼叫时,Rails应用程序从哪里知道我已经登录?我以为我必须创建一个额外的身份验证令牌并将其用于身份验证,或者在执行AJAX调用时设置devise会话cookie。
稍后编辑:当我进行AJAX调用时,我的rails应用程序从哪里知道我已登录?
一个AJAX请求(XMLHttpRequest)将在同一域的标准HTTP请求中包含相同的标头。至于从头读取cookie,查找会话信息并授权请求,其行为将是相同的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句