在 ember-file-upload 的请求标头中添加身份验证令牌

Posted

技术标签:

【中文标题】在 ember-file-upload 的请求标头中添加身份验证令牌【英文标题】:Add auth token in request header in ember-file-upload 【发布时间】:2018-11-29 13:40:00 【问题描述】:

我正在为我的应用程序使用 ember vesrion 2.15.1。我正在使用ember-file-upload 节点模块来支持文件上传,并且是成功的。挑战是我无法将身份验证令牌添加到请求标头。我的请求标头如下所示:

我无法在文件上传的请求标头中添加 userAuthToken,如下所示,我可以为其他 api 调用添加:

我已尝试通过

上传文件
set(file, 'headers.userAuthToken', localStorage.getItem("userToken")); // this line is creating problems
let response = yield file.upload(url);

但无法在请求标头中添加 userAuthToken。 任何修复或解决方法将不胜感激。

【问题讨论】:

【参考方案1】:

您可以将选项作为upload 方法的第二个参数传递。一种可能的选择是headers。像这样的东西应该可以工作:

let response = yield file.upload(url, 
  headers: userAuthToken: localStorage.getItem("userToken")
);

您可以找到其他可能的选项here

【讨论】:

Gennady,这是非常干净和简单的方法。它工作得很好。谢谢。【参考方案2】:

您可以在应用程序适配器中添加额外的标头,例如:

import ActiveModelAdapter from 'active-model-adapter';

var token = $('meta[name="csrf-token"]').attr('content');

export default ActiveModelAdapter.extend(
    headers: 
        "X-CSRF-Token": token
    
);

【讨论】:

他询问ember-file-upload,这是一个上传文件的插件,不使用ember数据。 是的,你是对的,在我的应用程序中我使用:let headers = adapter.get("headers");,然后将其传递给 file.upload 函数 Karol,我感谢您的努力,但我要求上传 ember-file-upload。

以上是关于在 ember-file-upload 的请求标头中添加身份验证令牌的主要内容,如果未能解决你的问题,请参考以下文章

请求标头与响应标头

如何在所有 GraphQL 请求的标头中注入 Id。例如,在所有 GraphQL 请求的标头中,它应该像:- Id:1234

CORS Preflight 请求是不是包含请求的标头?

授权请求标头与凭据的 POST 请求正文

与响应标头相比,请求标头中的 Cache-Control 效果如何

401 alamofire 获取带有标头的请求