Ich versuche, ein JSON-Objekt mit einer Antwort in einem 403-Ereignis zu senden, das Token Ablaufinformationen unter anderem an den Client enthält. Aus irgendeinem Grund wird die Antwort jedoch als Zeichenfolgenobjekt anstelle von JSON gesendet.Nodejs-Antwort wird als Zeichenfolge anstelle von JSON gesendet
Die Antwort sieht wie folgt aus:
Hier werden die entsprechenden Funktionen sind. Diese
ist vom Server:
function checkYourPrivilege(checkAdmin, bearerHeader, res, reg, next){
if (typeof bearerHeader !== 'undefined') {
var bearer = bearerHeader.split(" ");
bearerToken = bearer[1];
jwt.verify(bearerToken, secret, function(err, decoded) {
console.log(decoded);
if(err){
return res.json({ success:false, message: 'Failed to authenticate token'});
}else{
if(Math.floor(Date.now()/1000 < decoded.expires)){
if(checkAdmin){
if(decoded.privileges.admin){
console.log("Tokenisi vanhentuu" + Math.abs(decoded.expires - Math.floo$
reg.decoded = decoded;
next();
}else{
console.log("et ole admin");
return res.status(403).send({
success: false,
tokenstatus: "valid",
message: "Not admin"
});
}
}else{
console.log("Tokenisi vanhentuu" + Math.abs(decoded.expires - Math.floor(Date.n$
reg.decoded = decoded;
next();
}
}else{
console.log("Token Expired");
return res.status(403).send({
success: false,
tokenstatus: "valid",
message: "Not admin"
});
}
}
});
} else {
console.log('ei tokenia');
return res.status(403).send({
success: false,
message: 'No token provided.'
});
}
};
Die vom Client ist:
.factory('authInterceptorService', ['$q', '$location', '$localStorage', function($q, $location, $localStorage){
return {
'request': function (config){
console.log(config);
config.headers = config.headers || {};
if ($localStorage.accessToken) {
config.headers.Authorization = 'bearer ' + $localStorage.accessToken;
}
return config;
},
'responseError': function(response){
if(response.status === 401 || response.status === 403) {
console.log(response);
$location.path('/');
}
return $q.reject(response);
}
};
}])
JSON ist eine Zeichenfolge. – Quentin
JSON wird immer als Zeichenfolge zwischen den Computern gesendet. Verwenden Sie einfach 'JSON.parse()', um es auf der Clientseite wieder in ein Objekt umzuwandeln. Für die Aufzeichnung gibt es kein JSON-Objekt. JSON ist ein Notationsstandard, kein Objekttyp. Daher können Standard-JavaScript-Objekte als eine Zeichenfolge geschrieben werden, die als JSON formatiert ist. – Shilly
Holy Moly Ich fühle mich jetzt dumm. Ich werde mich für die ganze Welt entschuldigen, bevor ich zurück in meine Höhle krieche. – nyoatype