내 웹 사이트에서 사용자를 인증하기 위해 사용자 이름/비밀번호 전략을 사용하여 PassportJS을 사용하고 있습니다. 누군가가 반환 한 후 (HTTPS를 통해)에 기록하고 있다면, 지금Express에서 로그인 한 사용자를 https로 리디렉션 하시겠습니까?
app.use(express.session({
// ...
cookie: { secure:true }
}));
그러나 : 나는 사용자가 로그인에해야 HTTPS를 통해 확보 한, 나는 세션 쿠키는 HTTPS를 통해 전송되는 것을 보장했다 HTTP를 통한 웹 사이트, 브라우저가 쿠키를 보내지 않기 때문에 로그인하지 않은 것처럼 보입니다.
로그인 한 사용자를 HTTPS로 리디렉션하고 싶습니다.
두 개의 쿠키 (세션 세부 정보 (secure: true
)와 "로그인 한 사람"(secure: false
) 표시된 쿠키)을 발행해야한다는 것을 알았습니다. HTTP를 통해 두 번째 쿠키가 표시되면 HTTPS로 리디렉션 할 수 있으며 보안 쿠키가 전송됩니다. Presto : 로그인 한 사용자가 HTTPS로 리디렉션됩니다.
질문 : Express에서 어떻게해야합니까? ,
이app.use(function(req, res, next) {
if (req.cookie.loggedin === '1' && ! req.secure())
{
res.redirect(HTTPS_LOCATION);
}
else
{
next();
}
});
HTTPS_LOCATION
의 값은 사용자의 설정에 따라 달라집니다
res.cookie('loggedin', '1', { secure : false /*, other options */ });
다음, 그 쿠키를 확인하는 미들웨어를 사용 : 사용자가 성공적으로 로그인하면
아주 멋진 해결책, 기억해야 할 것 :) – robertklep