본문 바로가기

node.js3

[Node] JWT , Login 인증 [ Node ] JWT , Login 인증 # JSON WEB TOKEN JWT는 JSON형태로 web Token을 주고 받는 걸 말한다. 주로 권한을 확인하거나 로그인 시 token을 발급할 때 주로 사용되는데, 로그인 시에 해당 사용자가 DATABASE나 JSON 파일 등에 존재여부 로직으로 검증 한 후에 Token을 발급하여 클라이언트 서버에 response 하여 저장하는 형식으로 많이 사용된다. 인증의 기본적인 로직은 아래와 같다. 1. CLIENT가 SERVER에 로그인 request 2. SERVER는 엔드포인트 기준으로 정의된 verify 로직을 수행하는데 여기서 요청받은 payload를 DATABASE에 고객정보를 sql문으로 요청한다. 3. DATABASE는 고객정보가 존재하면 해당 us.. 2024. 1. 16.
[Node] - bcrypt [Node] - bcrypt #bcrypt bcrypt는 Node.js의 암호화 라이브러리로서 전달 받은 본인만 알고있어야하는 문자열, 예로 로그인 비밀번호를 Hash 알고리즘을 통해 고정 길이의 해시값으로 변환하는 역할을 한다. Hash값으로 변환 된 암호화 데이터는 이 시점 이후로 복호화가 불가능하게 된다. 해당 로직을 구현한 개발자도 알아 낼 수 없다. 다만 해커들은 레인보우테이블(rainbow Table) 이나 무차별 대입 공격(brute-force attack) 등으로 비밀번호를 공격할 가능성이 있다. #Salt salt는 비밀번호를 hash값을 생성할 때 무작위로 원본데이터에 추가되는 문자열이다. salt의 길이는 해시 알고리즘에 따라 고정되어있고 알고리즘 내부에 따라 결정이 된다. 이 sal.. 2024. 1. 14.
Node.js 동기/ 비동기 에러처리 Node.js 동기/ 비동기 에러처리 에러 처리에 있어 비동기, 동기 프로미스의 동작을 이해해야한다. 쉽게 이야기한다면 동기적은 위에서 부터 순차적으로 진행되며 각 작업이 완료될때까지 기다린 후에 진행되어지는 걸 말하며 비동기는 순차적으로 진행 되지않으며 각 작업을 기다리지않고 완료되면 다음 작업을 진행하는 것을 말한다. Promise는 애초에 비동기적으로 처리되며 흔히 말하는 콜백지옥 복잡성을 줄이기 위해 사용되고 프로미스 체이닝을 통해 명시적으로 연속 작업이 가능한 것을 말한다. 따라, 작업의 성공 또는 실패에 따라서 처리할 코드를 지정할 수 있고 가독성과 유지보수성이 매우 향상 되는 결과를 낳는다 이해하기 매우 힘들었음.. 동기적 처리 예로 Try Catch문을 사용하여 동기적으로 에러처리가 가능 .. 2023. 11. 23.