웹 페이지를 사용하다보면 로그인 한 경우에만 들어갈 수 있는 경우, 그냥 전부 들어 갈 수 있는 경우 여러 가지 상황이 있는데, passport에서는 이런한 기능을 유용하게 사용할 수 있는 미들웨어를 제공한다!
- req.isAuthenticated()
1) checkAuthenticated : 로그인을 해야만 접근 할 수 있는 페이지에 만약에 로그인을 하였으면 바로 next, 안되면 login하라고 login 페이지로 이동
2) checkNotAuthenticated : 로그인을 안 해야만 접근 할 수 있는 페이지에 만약에 로그인을 하였으면 바로 /로 이동, 안되면 해당 페이지 접근
- 그냥 미들웨어로 넣어주면 된다.
공식 문서를 보면 요청은 post나 delete로 하는 것을 권장한다.
현재 코드는 평문 암호가 그대로 DB에 저장되기 때문에 해킹을 당하게 되면 그대로 털리게 된다. 이를 방지하기 위해 암호화하여 저장을 해보자
- bycrptjs
비밀번호를 암호화 키와 함께 암호화(양방향)
- 어떠한 암호를 이용해서 비밀번호를 암호화 하고 그 암호를 이용하여 복호화도 가능
- 암호화 키가 노출되면 알고리즘은 대부분 오픈되어 있어 위험도가 높다!
SHA-256으로 해시화하여 저장(단방향)
- 무작위 대입하여 레인보우 테이블을 생성하여 암호화된 비밀번호를 비교해서 비밀번호를 알아낼 수 있다.
- 대부분 비슷한 암호를 사용하기 때문에 레인보우 테이블로 알 수 있기 때문에, '솔트'라는 것을 사용한다. => Hash(Salt + Password) 암호화해서 저장