我具有以下功能,可以在其中将jwt张贴到服务器上以验证它是有效的jwt,并且它尚未过期,或者如果我的应用程序没有jwt,则得到一个新的jwt。然后尝试返回该值,然后打电话给我
所以这是我的初始javascript拨打电话
import { checkJwtExp } from '../../APIChecks.js';
debugger;
const token = checkJwtExp();
console.log(token);
这是我的APICheck.js
export const getJwtToken = function() {
const user = "UserName";
let token = "";
const pass = "Pass";
const xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
token = this.responseText;
sessionStorage.setItem("token", token);
return token;
}
}
xhttp.open("POST", "https://localhost:44377/api/auth/token", true);
xhttp.setRequestHeader('Authorization', 'Basic ' + window.btoa(user + ':' + pass));
xhttp.send();
};
export const checkJwtExp = function() {
const token = sessionStorage.getItem('token');
const xhttp = new XMLHttpRequest();
const url = 'https://localhost:44377/api/auth/validateToken';
if (token === '' || token === undefined || token === null) {
getJwtToken();
}
else {
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
if (this.responseText !== "valid") {
getJwtToken();
}
else {
return token
}
}
}
xhttp.open("POST", url, true);
xhttp.setRequestHeader("Content-Type", "application/json");
xhttp.send(JSON.stringify(token));
}
};
我已经分别测试了所有这些调用,并且它们起作用了,但我的问题出在我的初始调用上,当我对需要授权的其他端点进行其他调用时,我想以这种方式返回令牌字符串,我只能使用该令牌变量。