Im usando Node con Express.js e cercando di fare un'autenticazione con JWT, dopo che l'utente si registra genera un token e lo salva in localstorage, ma poi non so come per ottenere il token per l'autenticazione. Questo è il codice im utilizzando:salva e ricevi token js espresso dalla memoria locale
vista accesso:
$.ajax({
type: 'POST',
url: base_url + "login",
data: postData,
dataType: 'json',
success: function(data){
// console.log(data1);
// alert(data);
_(data);
if(data.success === false){
showError(data.msg);
}else{
showError(data.msg);
window.localStorage.setItem("authToken", data.token);
var token = window.localStorage.getItem('authToken');
if (token) {
$.ajaxSetup({
headers: {
'x-access-token': token
}
});
}
}
}
});
E questa è la im di autenticazione percorso utilizzando per verificare prima di una qualsiasi delle rotte si accede:
router.use(function(req, res, next){
var token = req.headers['x-access-token'];
console.log(token);
if (token) {
// verifies secret and checks exp
jwt.verify(token, app.get('superSecret'), function(err, decoded) {
if (err) {
return res.json({ success: false, message: 'Failed to authenticate token.' });
}else{
// if everything is good, save to request for use in other routes
req.decoded = decoded;
next();
}
});
} else {
// if there is no token
// return an error
return res.status(403).send({
success: false,
message: 'No token provided.'
});
}
});
nella console .log (token) ottengo una variabile non definita, sembra che non so come accedere al token dalla rotta. Molte grazie.
Hai verificato (tramite gli strumenti di sviluppo del browser) che l'intestazione è effettivamente inviato? – mscdex
@mscdex quando vado in rete, non vedo l'x-access-token come intestazione di richiesta o come intestazione di risposta – user3334406