上传头像后需要回显头像,而后端给出的预览头像的接口需要携带token,因此直接在img标签的src属性怼上头像地址是不可行的,因为无法携带token,如何解决?

上传头像后需要回显头像,而后端给出的预览头像的接口需要携带token,因此直接在img标签的src属性怼上头像地址是不可行的,因为无法携带token。

怎么解决携带token这个问题呢

  1. 通过请求获取文件流,然后转成base64,填充到src。
  2. 后端把静态文件加到白名单,去掉token验证,为什么要加token??

有几种方法可以解决这个问题:

将token作为参数传递给预览头像的接口,这样可以将token作为查询字符串或请求正文的一部分添加到预览头像的URL中,然后使用带有token的URL更新img标签的src属性。例如,如果预览头像的URL是 https://example.com/preview-image,可以将其更改为 https://example.com/preview-image?token=your_token。

将token存储在浏览器的本地存储(例如localStorage或sessionStorage)中,然后在前端从本地存储中获取token,并使用带有token的URL更新img标签的src属性。

如果您的应用程序使用了JWT(JSON Web Token)身份验证,您可以将JWT作为cookie发送到后端,后端可以从cookie中提取JWT并验证用户身份。这样,您可以从后端获取带有token的URL,而无需明确传递token参数。

需要注意的是,无论您选择哪种方法,都应该确保您的token在传输过程中是安全的,以防止恶意用户窃取您的token并利用它进行未授权操作。