使用自定义标头访问图像

时间:2013-01-25 22:54:40

标签: php javascript xmlhttprequest base64 restful-authentication

我通过仅使用标头中的有效访问令牌自动调整HTTP请求来保证我的RESTful php API。 我向所有AJAX请求添加了带标记的标题:

   $.ajaxSetup headers:
     auth_token: auth_token

为了保护图像访问,我想使用相同的逻辑并在请求标头中添加令牌。 显然,我只能通过AJAX请求和Base64图像数据来实现:

   $.get url, (imageData) =>
     $image.attr src: "data:image/jpeg;base64," + imageData

我不确定性能? 因为我的图像大小在12字节到4mb之间,而且我还需要完全的移动支持。

我找到的另一种方法是使用查询字符串:

  $image.attr src: 'image/12.jpg?auth_token=' + token

它很有效,除了在令牌改变时我的图像不会被缓存。

剩下哪些选项?

1 个答案:

答案 0 :(得分:1)

您可以使用Cookie。第一个请求设置您签名的cookie(如会话cookie),因此它不能伪造。然后,对于图像请求或任何其他请求,请检查浏览器是否使用您可以链接到原始请求的正确代码发送该cookie。这样,您只需要第一次请求时的令牌。