JWT를 nodej에서 수평 적으로 확장하는 적절한 방법은 무엇입니까? 토큰을 생성하려면 RSA
을 사용하고 있습니다. 따라서 각 서버는 자체적으로 생성 된 토큰을 디코딩 할 수 있습니다. 모든로드 균형 조정은 상태 비 저장이므로 어떤 서버가 토큰을 생성했는지 알 수있는 방법이 없습니다. 내가 사용하고있는 현재 코드는 generateToken
기능은 이미지의 그들 모두에서 실행할 수수평 확장 Json-Web-Token 노드
helper['generateToken'] = (user)=>{
return new Promise((fullfill,reject)=>{
try{
var cert = fs.readFileSync('pvt.key');
var token = jwt.sign(user,process.env.SECRET);
fullfill(token);
}catch(ex){
reject(new Error("Your token could not be generated"));
}
});
}
다른 개인 키가 있습니다. 이것으로 확장하는 가장 좋은 방법은 무엇입니까?
그냥 보조 노트
i는 각각의 서버가 자체적으로 생성 된 토큰을 디코딩 할 수있을 것입니다 고정 표시기 떼
'표준 사례'의 관점에서 모든 서버와 개인 키를 공유하는 것이 좋습니다. 나는 세션 기반의 토큰 기반 인증에 익숙하지 않으므로 같은 것을 구현하는 적절한 방법이 무엇인지 확실하지 않다. – georoot
개인 키는 안전하게 보관되어야한다. 가상화, 백업 또는 복제와 같은 공동 작업은 항상 위험을 초래합니다. 하드웨어 토큰 (예 : HSM)을 사용하여 자체의 복제 및로드 균형 조정 메커니즘이있는 키를 저장할 수는 있지만 비용이 많이 듭니다 ... 따라서 메커니즘을 계획 할 때 전체 하드웨어 및 소프트웨어 시스템의 보안을 고려하십시오. 열쇠를 공유하다 – pedrofb