나는 Angular와 JWT
을 인증 자로 사용합니다.로그 아웃하고 로그인 Angular 5 JWT가 가능한 데이터 누출 가능성
로그인하면 token
이 표시되며 앱에 액세스 할 때 사용됩니다.
로그 아웃 - 토큰을 localStorage
에서 제거합니다.
다시 로그인했지만 사용자가 다른 경우 사용자 -> 나는 처음 로그 아웃 한 적이없는 것처럼 이전에 시작한 사용자의 세부 정보 및보기를 가져옵니다. 이전 사용자와 관련된 모든 것을 볼 수있게 해주 며, 서버의 액션 가드와 만나는 경우에만 허용 된 작업 만 커밋 할 수 있습니다.
내가 으로 새로 고침되면 이전 사용자의 잔여 물이없고 현재 로그인 한 사용자의 올바른보기로 앱을 사용할 수 있습니다.
물론 로컬 스토리지 지우기 외에도 로그 아웃 방법에 href="/"
을 추가하여이 문제를 신속하게 해결할 수 있습니다.
그러나 알려진 해결책이 있는지 궁금 해서요. 또는 알려진 문제 일 수도 있습니다.
LOGIN 방법 :
exports.login = function(req, res, next) {
User.findOne({email: req.body.email}, function(err, user) {
if (err) {
return res.status(500).json({
title: 'An error occured',
error: err
});
}
if (!user) {
return res.status(500).json({
title: 'Login failed',
error: {message: 'Invalid login credentials'}
});
}
if (!bcrypt.compareSync(req.body.password, user.password)) {
return res.status(401).json({
title: 'Login failed',
error: {message: 'Invalid login credentials'}
});
}
var token = jwt.sign({user: user._id}, app.get('shhhhh'), {expiresIn: 86400}); // Expires in 24 hours
res.status(200).json({
message: 'Successfully logged in',
token: token,
});
});
};
LOGOUT 방법이 이제 해결
logout() {
localStorage.clear();
this.router.navigate(['/']);
}
인가 다음 새로 고침 할 때까지 다시 시작되지 않은 생성자에 로그인을 넣어 -
는 (문제의 뿌리를 추적 이 공개 프로젝트를 공유 할 수 있습니까? 복제하고 자세히 살펴 보는 것이 좋을 것입니다. 이러한 문제는 여러 가지 이유로 발생할 수 있습니다. 어쨌든, 내 첫 번째 의심은 프론트 엔드와 백엔드 모두에서 토큰을 유지하고 제거하는 방법 일 것입니다 –안녕하세요, Chau, 답장을 보내 주셔서 대단히 감사합니다.나는 그것이 상업적인 것만 큼 전적으로 공유 할 수 없습니다. 그런 다음 LS에서 토큰을 제거하는 로그 아웃 메소드를 추가하여 더 이상 허용되지 않게합니다. –
로그인 및 로그 아웃 서비스 만 필요합니다 –