为什么我的 jsreport 身份验证不起作用?

Why does my jsreport Authentication wasn't working?

我正在尝试 https://jsreport.net/learn/authentication:

....
  "extensions": {
    "authentication": {
      "cookieSession": {
        "secret": "<your strong secret here>"
      },
      "admin": {
        "username": "admin",
        "password": "password"
      },
      "enabled": true
    },
......

我还阅读了以下内容:

You need to add the header to every request when is this extension enabled.

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Where the hash is based on username and password: base64(username:password)

我尝试同时使用 QWxhZGRpbjpvcGVuIHNlc2FtZQ== 和使用 https://www.motobit.com/util/base64-decoder-encoder.asp 进行编码:admin:password 结果:YWRtaW46cGFzc3dvcmQ=。当我尝试使用它们时,它们似乎都无法让我访问我的 API.

(请注意,下面的键是我试过的上面的任何一个)

我试过对 jsreport API 进行前端调用:return this.http.post(this.hosturl, parameter, { headers: 'Content-Type': 'application/json', 'Authorization': 'Basic ' + this.key }, responseType: 'blob' });

我也试过放在后端调用 jsreport API:

 var data = {
        headers: {
            "Authorization" : "Basic key" 
        },
        template: { "shortid": shortid },
        options: {
            preview: preview
        }
    }

知道为什么它总是在前端 returns 未经授权(angular)并在后端提示登录(快速)吗?

PS: 在后端-API 提示用户名:admin 和密码:密码由于某种原因无效。

我只能使用 username:admin 和 password:password 从 jsreport studio 登录。

如有任何想法,我们将不胜感激。

它总是 returns 在 front-end(angular) 上未经授权并提示在 back-end (express) 上登录的原因是 错误的实施

我是如何解决的:

对于front-end:

constructor(){}之后的变量声明:

key = 'YWRtaW46cGFzc3dvcmQ='; header = { 'Content-Type': 'application/json', 'Authorization': 'Basic ' + this.key };

在服务呼叫中:

return this.http.post(this.hosturl, parameter, { headers: this.header, responseType: 'blob' });

对于back-end:

var options = {
        uri: 'http://localhost:5488/api/report',
        auth: { user: 'admin', password: 'password'}, 
        method: 'POST',
        json: data
    }