我正在使用JWT来认证和授权单页应用程序发出的请求。
在应用程序中的导航期间,我使用XMLHttpRequest,因此我可以设置标头并使用令牌,如下所示:
headers:
Authorization: Bearer MyJWTToken
但是,有时我需要在该应用程序中下载受保护的文件,所以我必须提供一个这样的链接,在其中我无法设置任何标题:
<a target="_blank" href="/api/protected-uri?access_token=MyJWTToken">Download Invoice</a>
我读到,在查询字符串中使用令牌根本不安全,因为它可能以服务器日志或用户浏览器历史记录结尾。
但是,我看不到任何其他解决方案。这真的是不好的做法吗?如何绕开这个问题?我应该使用浏览器cookie吗?
我要做的(和已经做的是链接到应用程序路由,然后将用户重定向到适当的目的地。这样,您可以避免在呈现的HTML页面中包含身份验证数据。