我目前正在尝试使用ng2-file-upload和devise token auth.:https://devise-token-auth.gitbook.io/devise-token-auth/conceptual。文件上传器目前直接处理http请求,因此,我没有使用with angular token rest api服务类来上传对象:https://angular-token.gitbook.io/docs/session-management。相反,我必须手动设置与auth令牌一致的头。
URL = '/api/my_api'
public uploader: FileUploader = new FileUploader({ url: URL});
update_upload_parameters(){
  var uo: FileUploaderOptions = {};
  uo.headers = 
  [
   {name: 'access-token', value : localStorage.getItem("accessToken")}, 
   {name: 'client', value : localStorage.getItem("client")},
   {name: 'expiry', value : localStorage.getItem("expiry")},
   {name: 'token-type', value : localStorage.getItem("tokenType")},
   {name: 'uid', value : localStorage.getItem("uid")}
  ];
  this.uploader.setOptions(uo);
}HTML文件
<input id="file2" type="file" ng2FileSelect [uploader]="uploader" />上传本身成功完成,但上传后,我看到会话中的访问令牌不再有效。我假设这是因为我使用了devise token auth,它会根据请求更新令牌,而不是将其设置到本地存储中。如何从响应头中手动检索令牌并将其设置到浏览器的本地存储中?(否则由正常请求中的angular token处理)
发布于 2019-09-02 16:44:17
数字,工作:
this.uploader.onCompleteItem = (item:any, response:any, status:any, headers:any)=> {
        localStorage.setItem('accessToken', headers['access-token']);
        localStorage.setItem("expiry", headers['expiry']);
    };
}https://stackoverflow.com/questions/57753043
复制相似问题