Ich benutze JWT's
für die Authentifizierung für eine Benutzeranmeldung, aber ich bekomme immer folgende Fehler, wenn ich einen POST auf /auth
Route machen möchte.Node JS TypeError: Secret muss eine Zeichenfolge oder Puffer sein
(node:3385) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: secret must be a string or buffer
(node:3385) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Hier ist mein Code
app.post('/auth', function (req, res, next) {
var username = req.body.username;
var password = req.body.password;
User.findOne({
where: {username: username}
}).then(function (user) {
if(user){
bcrypt.compare(req.body.password, user.password).then(function (passcheck) {
if(passcheck){
var jwtUser = {
username: user.username,
name: user.name,
score: user.score,
accesslevel: "all"
};
var token = jwt.sign(jwtUser, app.get('superSecretString'), {
expiresIn: 1440 //expires in 24 hours
});
//callback(token);
res.json({
success: true,
message: 'Here´s your token.',
token: token
});
/*
var resp = {success: true, message: 'Heres your token.', token: token};
response.write(JSON.stringify(resp));
*/
}else{
res.status(401).json({
success: false,
message: 'Authentification failed. Password or Username wrong'
});
}
});
}else{
res.status(401).json({
success: false,
message: 'Authentification failed.'
});
}
}).catch(next);
});
Danke für Antworten.
Im fügen Sie in jwt.sign richtigen Parameter zu übergeben denken müssen. Ich würde von diesem app.get ('superSecretString') starten, um nach Fehlern zu suchen. –
@MykolaBorysyuk thx, habe ich in der config.js "module.exports" die "s" vergessen – pache