为什么我的 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
}
我正在尝试 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
}