在项目中使用的是a链接下载的文件,把下载地址,文件id,token都暴露在了network里面,此时用户复制一下地址,粘贴在别的浏览器里面,也可以下载文件。
下载文件代码如下
handelDownLoad(id){
const anchor = document.createElement('a')
anchor.href = `${base-URL}/${this.url.download}?id=${id}&token=${this.token}`
anchor.download = true
document.body.appenChild(anchor)
anchor.click()
document.body.removeChild(anchor)
}
解决的方法是在浏览器的Cookies放上用户的标识,后端直接获取,此时需要考虑一下在哪个域下使用,注意参数 domain
Domain Domain决定Cookie在哪个域是有效的,也就是决定在向该域发送请求时是否携带此Cookie,Domain的设置是对子域生效的,如Doamin设置为 .a.com,则b.a.com和c.a.com均可使用该Cookie,但如果设置为b.a.com,则c.a.com不可使用该Cookie。Domain参数必须以点(".")开始。
例如
Cookies.set('user', value, {domain: base_url}