Ich versuche, einige serverseitige Authentifizierung zu tun.JWT Serverseite Authentifizierung JsonWebTokenError
In Server-Seite Login()
var jwt = require('jsonwebtoken');
....
if (user.hash != hash(pass, user.salt)) {
return invalid("Wrong password");
}
var token = jwt.sign(user, 'superSecret');
res.json({
success: true,
message: '',
auth_token: token
});
In Client-Seite http
createHero(hero: Hero) {
let body = JSON.stringify({ hero });
let headers = new Headers({ 'Content-Type': 'application/json' });
let authToken = localStorage.getItem('auth_token');
headers.append('Authorization', `Bearer ${authToken}`);
let options = new RequestOptions({ headers: headers });
this.http.post(`${this._baseUrl}create/`, body, options)
.map(response => response.json())
.subscribe(data => {
this._dataStore.heroes.push(data);
this._dataStore.hero = data;
this._heroObserver.next(this._dataStore.hero);
},
error => this.handleError('Could not create hero.')
);
}
In serverseitige Validierung
var token = req.headers.authorization;
var h = req.headers;
// decode token
if (token) {
// verifies secret and checks exp
aaa = jwt.verify(token, 'superSecret', function(err, decoded) {
console.log(decoded);
if (err) {
return res.json({ success: false, message: 'Failed to authenticate token on API server.' });
} else {
// if everything is good, save to request for use in other routes
req.decoded = decoded;
next();
}
});
console.log(aaa);
} else {
// if there is no token return an error
return res.status(403).send({
success: false,
message: 'No token provided.'
});
}
bekam ich das Token korrekt auf dem Server zurück. Autorisierung: "Bearer ....."
Aber es kann nicht verifizieren. Ich habe JsonWebTokenError Ungültiges Token erhalten.
Kann jemand helfen, aufzuzeigen, was ich verpasst habe?