nodejs express jwt 적용 (mysql) restfulserver 기존 로그인 시스템 다시 구성
기존 로그인 시스템 다시 구성
node.js 기반 restful server 구축 이다.
base source 는
https://www.bezkoder.com/node-js-jwt-authentication-mysql/
이다.
중요 내용중에 하나
sequize 적용 시
n:m 관계설정이 있고 중개테이블 설정하는 부분이 있다
이부분이 여기서 핵심 코드이다. 이 부분은 별도로 정리해 보기로 한다.
n:m 과 1:m 의 관계 구성과 사용이 설정이 별로 없고 예제 또한 절절한 것들이 없다.
하지만
이런걸 꼭 사용하는 부분들이 있다.
user 와 role 구성 하는 부분이 있는데 이걸 sophisticated 하게 구현한 소스 예제가 없다.
setRole,getRole, addRole 이런식으로 하는 예제가 없다.
이걸 한번 만들어야 할것 같다.
이 내용을 그대로 가져와서 하였다.
추가한 내용은 localhost 에서만 동작 하여 cor 부분 추가하였고
이번에 https 적용도 같이 추가 하였다.
결과물을 확인하기 위해 postman 으로 확인 하였는데
http 는 문제가 없지만
https 는 신뢰할수 없는 사이트라고 나오는 이슈가 있어 정상적으로 동작하지 않았다.
해결 방법은 그냥 설정해서 SSL certificate verification option을 off 하면 된다.
이건 api 동작만 확인하기 위한 조치이며
client 사이트에서 해결하기 위해서는 다른 무언가를 해야 한다.
1. 도메인이 있는 경우
certbot 을 이용해 보는 것도 좋아 보인다.
꼭 도메인이 있어야 하고 설정도 해야 정상적으로 동작한다.
2. client 에 호출하는 놈이 있는데 그놈에 옵션을 주어서도 해결할수 있다.
3. restful server 에 proy server 를 붙여서 사용해도 된다. apache 나 nginx
아니면 loadbalance 에도 https 인증이 있어 이용가능한다.
일단 나는 localhost 용으로 하기 위해
고전 적인 방법 openssl 을 이용해서 키를 만들어서 했다.
리눅스 자체서명 SSL 인증서 생성
https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EC%9E%90%EC%B2%B4%EC%84%9C%EB%AA%85_SSL_%EC%9D%B8%EC%A6%9D%EC%84%9C_%EC%83%9D%EC%84%B1
그냥 구글에서 검색했는데 이게 동작하여 링크만 위에 넣어 두었다.
내용을 그냥 키를 만들고 rsa aes 뭐 이런게 있고 길이는 2048로 하고
개인키가 있고 공용키가 있고
crt 랑 key 를 등록하면 된다는 정도이다.
그냥 암호화 하면 RSA AES 있고 대칭형 비대칭형 공개키 private key 이런 단어가 나온다
정도 알고 가면 좋을 것같다.
검색에 암호확검색하면 이것저것 확인 할수 있다.
DES RSA 이런거
certbot 을 이용해서 https 등록시 참조할 사이트도 아래에 링크한다.
SSL 인증 이슈] DNS problem: NXDOMAIN looking up A for www.happist.com
https://happist.com/579208/ssl-%EC%9D%B8%EC%A6%9D-%EC%9D%B4%EC%8A%88-dns-problem
마지막으로
nodejs 에 직접 https 를 붙이는 작업 코드 참조 사이트 이다.
https://kyun2da.github.io/2021/01/13/httpsSetting2/
여기는 certbot 을 이용해서 구성하였지만
certbot 을 할려고 하면 도메인이 있어야 한다. 그렇지 않으면 certbot 으로 standalone 형태로 인증서를 만드는 것이 문제가 있다.
일단 나는 동작 시켰으니 이것저것 기록 차원에서 남긴다.
댓글
댓글 쓰기