经过身份验证的用户从 jQuery 向 rails API 发出 AJAX 请求

Authenticated user making AJAX requests to rails API from jQuery

我正在构建一个 Rails 应用程序,我正在使用 Devise 进行身份验证。 当用户登录时,我需要对 Rails 进行 AJAX 调用,并获取属于当前用户的数据 JSON。我也不希望未经身份验证的用户和其他登录用户访问当前用户的资源。

我正在使用 jQuery 的 $.getJSON() 来发出 AJAX 请求,只需像这样指定 link 地址:

 $.getJSON('http://localhost:3000/users/1/photos', function(data) { console.log(data); });

到目前为止,身份验证似乎以与 HTTP 请求相同的方式工作,因此用户只能通过 AJAX 访问他自己的数据。

我对 AJAX 没有太多经验,我完全不明白为什么 确实 有效。当我进行 AJAX 调用时,我的 rails 应用程序从哪里知道我已登录?我以为我必须创建一个额外的身份验证令牌并将其用于身份验证或在执行 AJAX 调用时设置设计会话 cookie。

稍后编辑:当我拨打 AJAX 电话时,我的 rails 应用程序从哪里知道我已登录?

AJAX 请求 (XMLHttpRequest) 将在针对同一域的标准 HTTP 请求中包含相同的 header。至于从 header 中读取 cookie、查找 session 信息和授权请求,行为将是相同的。