본문 바로가기
320x100

Projects38

로그인 유저 글쓰기/댓글쓰기 차별화 저번에 로그인까지 만들었는데, 그 이후 로그인 유저는 글쓰기와 댓글쓰기를 비밀번호 입력 없이 가능하도록 수정해야 했다. 이 과정에서 많은 수행착오가 있었고, 결국 보안상 별로 좋지는 못하지만 기능을 구현하는데는 성공하긴 했다. 글쓰기 먼저 로그인 유저의 경우 글쓰기를 할 시 닉네임이 수정 불가능이어야 하고, 글 삭제, 수정을 위한 비밀번호 입력이 없어야 한다. 이를 위해 write.ejs에서 로그인 정보가 없을 경우만 비밀번호 입력란을 생성하도록 하였다. 물론 view.js에서 세션의 로그인 정보를 페이지 렌더링 전에 넘겨준다. 닉네임 입력란 같은 경우 수정 불가능하도록 바꿨다. 로그인 유저의 경우 글의 password 칼럼은 유저의 고유 id 값을 암호화하여 저장하였다. 글조회 글 조회의 경우 비로그인.. 2021. 4. 5.
passportjs를 이용한 구글 로그인 소셜 로그인을 구현하기 위해 몇가지를 공부했다. 먼저 로그인 정보를 유지하기 위해서는 세션의 도입이 필수 불가결한데, nodejs express에서 어떻게 세션을 다루는지, 또한 passportjs를 이용하여 어떻게 하면 구글 로그인을 구현할 수 있을지에 대해 알아보았다. 일단 sidebar에 임시로 구글로 로그인 링크를 걸어놓는다. npm install -s passport passport-google-oauth 해당 명령어를 사용하여 passportjs로 google로그인을 하기 위한 준비를 한다. 유저 정보를 담을 user테이블의 Column으로는 구글로 로그인 했을 시 넘어오는 id값을 저장할 USER_CODE와 NICKNAME,그리고 해당 유저의 등급(ADMIN,USER)를 저장할 GROUP을 .. 2021. 3. 17.
댓글 답글 기능 구현 어떤 댓글을 DB에서 불러왔을 때 해당 댓글이 댓글인지 답글인지의 2가지 경우가 존재한다. refreshReply함수에서 ROOT_REPLY_ID가 있는지 없는지의 여부에 따라 이를 구분하고, 댓글인 경우 [답글]버튼을 달고, div의 class값으로 해당 댓글의 id를 지정한다. 답글인 경우 margin-left에 20px옵션을 주고 해당 댓글의 아래에 답글을 만든다. function refreshReply(postId){ $.ajax({ url: '/view/refreshReply', datatype: 'json', type: 'POST', data: {id : postId}, success: function(result){ $('#reply-area').empty(); replyList = resu.. 2021. 3. 9.
AJAX로 댓글달기 기능 구현 댓글 기능을 구현해야 하는데, 댓글을 달거나 삭제할 때마다 페이지를 새로고침한다면 자원 낭비일 것이고, 사용자 입장에서도 별로 좋은 느낌은 받지 못한다. 그래서 AJAX를 사용해서 비동기(새로고침을 하지 않는)방식으로 댓글을 구현했다. 먼저 댓글을 위한 REPLY 테이블을 DB에 만들어야 한다. REPLY 테이블의 COLUMN은 다음과 같다. ID : 각각의 댓글에 부여되는 식별값 POST_ID : 해당 댓글이 속한 글의 ID ROOT_REPLY_ID : 답글의 경우 존재하는 타겟 댓글 ID (일반 댓글일 경우 NULL) AUTHOR : 댓글 작성자 CONTENT : 댓글 내용 isLogined : 로그인 사용자의 댓글인지 여부 PASSWORD : 암호화된 댓글 작성 암호 일단 답글은 지금 추가하지 않고.. 2021. 3. 6.