项目经验积累之(文件下载添加标识)

42 阅读1分钟

在项目中使用的是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}