Ich versuche, eine GET-Anfrage an meine mLab-Datenbank zu machen. Ich übergebe ein JWT-Token mit der Anfrage und protokolliert es sowohl auf dem Client als auch auf dem Server. Es liest korrekt auf dem Client, zeigt aber Null auf dem Server. Jede Hilfe würde sehr geschätzt werden. Ich benutze Node.js und Angular. Ich bin ziemlich neu, also entschuldige ich mich im Voraus, wenn der Fehler offensichtlich ist.
Hier ist die GET Route Server:Warum ist mein JWT-Token Null auf der Rückseite, aber nicht die Front
router.get('/', (req, res, next) => {
var decoded = jwt.decode(req.query.token);
console.log(decoded);
console.log('employees');
if(decoded) {
return Company.find({_id: decoded._id})
.populate('user', 'firstName')
.exec(function(err, company) {
if (err) {
return res.status(500).json({
title: 'An error occurred',
error: err
});
}
res.status(200).json({
message: 'Success',
obj: company
});
});
} else {
return res.status(401).json({
title: 'Not authenticated',
error: {
message: 'Please create an account or sign in'
}
});
}
console.log(company);
});
Hier ist der Kunde:
getEmployees() {
const token = localStorage.getItem('token')
? '?token=' + localStorage.getItem('token')
: '';
console.log(token);
return this.http.get('http://localhost:3000/company' + token)
.map((response: Response) => {
const employees = response.json().obj;
console.log(employees);
let transformedEmployees: Employee[] = [];
for (let employee of employees) {
transformedEmployees.push(new Employee(
employee.firstName,
employee.lastName,
employee.email,
employee.password,
employee.jobTitle,
employee.isAdmin,
employee.tasks
));
}
console.log(transformedEmployees)
this.employees = transformedEmployees;
return transformedEmployees;
})
.catch((error: Response) => {
this.errorService.handleError(error.json());
return Observable.throw(error.json())
});
}
Was bedeutet 'console.log (req.query.token);' sagen? Verwenden Sie eine Bibliothek auf der Serverseite für JWT (woher kommt die Dekodierungsfunktion)? Warum verwenden Sie nicht den Schlüssel, der auch beim Signieren des Tokens verwendet wird, zum Entschlüsseln? – MikaS