0
내가 요청을 인증 내 Node.js를 서버의 인증 경로를 가지고있다. 서버 로그에Node.js를 콜백()
var jwt = require('jsonwebtoken');
var config = require('./config');
module.exports = function(req,res,next){
var bearerHeader = req.headers['authorization'];
var token;
console.log(bearerHeader);
req.authenticated = false;
if (bearerHeader){
console.log("11111");
var bearer = bearerHeader.split(" ");
token = bearer[1];
jwt.verify(token, config.secret, function (err, decoded){
console.log("22222");
if (err){
console.log(err);
req.authenticated = false;
req.decoded = null;
} else {
console.log("33333");
req.decoded = decoded;
req.authenticated = true;
}
});
}
next();
}
그러나, 나는 다음과 같은 출력이 나타납니다 : : 여기 auth
에 대한 코드는
Bearer jsflkdjlsdfjksodfkjlsdfjkls
11111
false
22222
33333
이것은 클라이언트 측의 토큰이 있다는 것을 의미하고, 그 패스입니다 jwt 검증. 그러나 서버는 인증 콜백에서 정보를 반환하기 전에 app.get()
을 실행하기로 결정합니다. 뭐라 구요?
당신이 다음() 인증 할 때를 호출하기 전에 5 초 대기를 추가 할 수 있습니다. 로그 쓰기 문제가 아닌지 확인하고 싶습니다. – limbo
@limbo 그냥 했어, 결과는 똑같아. 'jwt.verify()'를 호출하기 전에 실제로 멈추기 때문에 논리는'jwt.verify()'다음의 코드에 즉시 전달됩니다. – db2791