我开发了一个使用oauth2身份验证的JavaScript应用程序。现在我想加载/显示来自此身份验证机制背后的服务器的图像。因此,我向休息服务器发送一个xmlHttp请求,并获取图像的URI作为响应。
在请求之后,我尝试将URI附加到图像的src,应用程序以401响应。
如何告诉浏览器重新使用我的身份验证?
这是获取URI的xmlHttp请求的一部分。
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
xhr.setRequestHeader('Authorization','bearer '+token);
xhr.send(null);
xhr.onreadystatechange = function() {
console.log(xhr);
if (xhr.readyState == 4 && xhr.status == 200) {
var img = document.createElement('img');
img.src = xhr.responseURL;
document.body.appendChild(img);
}
}
我忘记了什么吗?
答案 0 :(得分:0)
图片是静态文件,我怀疑当您通过简单的网址提出申请时,您将能够获得OAuth2保护。虽然您可以在网址中添加OAuth2信息,这可能不是一件好事,因为它会向客户端公开所有应该是私密且安全的数据。
也许您可以考虑将来自普通受保护端点的图像作为byte []或Base64字符串提供,如果您确实需要保护图像本身,则可以在客户端呈现该字符串。
所以有一个受保护的端点,它服务于图像本身的内容。当然,如果您确实需要图像是私密且安全的,那么您只能这样做。如果你不这样做,那就让它公开,并从一个单独的CDN服务。它并不真正需要落后于OAuth2系统。