팀프로젝트 58

스프링부트 팀플) 20240331 여러 방식의 로그인의 일원화

평범하게 사이트 내에서 가입한 아이디이다. 구글 연동 / 네이버 연동 / 카카오 연동 여부가 0으로 표시되고 있는데, 이는 해당 외부API와 연동되지 않았다는 뜻이다. 해당 아이디로 네이버 로그인을 해보겠다. 사실 엄청난 처리를 한 것이 아니라서 코드 상 작업도 별로 없었다. 그러니 기존의 카카오 로그인 코드에서 변경된 부분만 올린다. //아이디 String jsonString2 = objectMapper.writeValueAsString(map.get("kakao_account")); JsonNode jsonNode2 = objectMapper.readTree(jsonString2); String id = jsonNode2.get("email").asText(); //이미 가입한 사람인지 확인 Memb..

스프링부트 팀플) 20240331 아이디의 이메일화

앞서 개인정보제거를 끝내고 외부API로그인을 작업을 준비할 때 "어차피 이메일로 동일성 확인을 할 거라면 이메일이 아이디인 것이 맞지 않을까?" 하는 생각이 들었다. 이메일로 동일성 확인을 하는 이유는 구글 로그인할 때 accessToken으로 이름과 이메일을 받아오긴 하지만 이름을 영문으로 하는 경우가 많아, 카카오/네이버와 달리 이름의 동일성 확인이 어렵기 때문이다. 그리고 카카오와 네이버에서 받아올 수 있는 이름/핸드폰번호로 인한 개인정보 문제도 있었고, 핸드폰번호로 동일성 검사를 하면 네이버-카카오의 동일성 검사 밖에 할 수 없다. 하지만 이메일로 검사하면 구글-카카오, 구글-네이버 2경우로 늘어나기 때문에 이편이 좋다는 생각이 들었다. 어찌되었든 이대로 그냥 아이디와 이메일을 냅둔 채, 강행하면..

스프링부트 팀플) 20240330 개인정보 제거

오늘 처음으로 멘토님을 만나고 피드백을 들을 수 있었다. 로그인/회원가입 쪽에서 들은 가장 큰 문제점은 개인정보가 들어갔다는 점. 보안 능력이 따라주면 상관없지만, 아직 미숙하기에 보안을 지킬 수 없다면 아예 다 제거하기로 했다. 으... 우선 DB, DTO부터 수정 CREATE TABLE memberDB ( userId VARCHAR2(50) PRIMARY KEY, userPw VARCHAR2(50) NOT NULL CHECK (LENGTHB(userPw) >= 4), nickname VARCHAR2(30) UNIQUE NOT NULL, userEmailId VARCHAR2(50) NOT NULL, userEmailDomain VARCHAR2(50) NOT NULL, restoreUserEmailId ..

스프링부트 팀플) 20240329 네이버 로그인

사실 어제 구현을 다했는데 집에 가기 직전까지 만들어서 완성시켰더니 시간이 없었다... 아무튼 포스팅 application.properties #Naver Login naver_client_id=클라이언트 아이디 naver_client_secret=보안 코드 naver_redirect_url=리타이렉트 URL 네이버 디벨로퍼에서 각 데이터를 가져와서 붙여 넣으면 된다. NaverLoginController package com.moonBam.controller.member.OpenApi; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader..

스프링부트 팀플) 20240328 카카오톡 로그인

https://innovation123.tistory.com/181 [Spring] 카카오 로그인 API 사용 방법 Kakao Developers 이미지 설명에 각 이미지 내용에 대한 위치(경로) 적어뒀으니 참고해 주세요. 1. KakaoDevelopers 접속 https://developers.kakao.com/ Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 innovation123.tistory.com https://innovation123.tistory.com/181 [Spring] 카카오 로그인 API 사용 방법 Kakao Developers 이미지 설명에 각 이미지 내용에 대한 위치(경로) 적어뒀으니 참고해 주세요. 1. KakaoDevelopers 접속 https..

스프링 팀플)20240228_약관 동의 페이지, 암호화/복호화, ajax 조정

1. 가입 동의 약관 동의 페이지 이용약관 동의(필수) 이용 약관에 동의합니다. 개인정보 처리방침(필수) 개인정보 처리방침에 동의합니다. 회원 탈퇴 및 서비스 이용 중지 규정(필수) 회원 탈퇴 및 서비스 이용 중지에 동의합니다. 모두 동의합니다. 다음 페이지로 이동 jsp 안에 넣기에는 양이 많아서 전부 include 처리했다. textarea { width: 100%; height: 10em; border: none; resize: none; margin-bottom: 10px; } css에 추가 2. 암호화 단방향과 양방향 암호화 중에서 고민했는데, 관리 감독의 용이성을 위해 양방향 암호화를 선택했다. 스프링부트 작업하면서 단방향도 있으면 좋겠다는 생각을 하긴 했지만, 양방향을 쓰면서 단방향화시키는 ..

스프링부트 팀플) 20240327 구글로그인 기능 구현

application.properties #Google Login google.auth.url=https://oauth2.googleapis.com google.login.url=https://accounts.google.com google.redirect.url=등록한 사이트 주소 google.client.id= 발급받은 아이디 google.secret = 발급받은 보안 비밀번호 -> 만약 git에 올릴 것이라면 이 부분은 지우고 다르게 배포해야 한다(github에서 구글보안코드는 막게 되어 있음) GoogleLoginResponse(롬복 필수) package com.moonBam.controller.member.OpenApi; import lombok.Data; import lombok.NoArgsC..

스프링부트 팀플) 20240325 게시판 전체

글번호 카테고리 제목 닉네임 작성 날짜 조회수 추천수 ${db.title} //게시판 글 목록 보기 @GetMapping("/viewDBoardList") public ModelAndView viewDBoardList( @RequestParam(defaultValue = "1") int currentPage, @RequestParam(defaultValue = "10") int perPage, String orderBy, HttpServletRequest request, HttpServletResponse response) throws ParseException { // 전체 글 개수 가져오기 (페이지네이션에 사용될 수 있음) List allPosts = serv.viewDBoardList(orderBy..

스프링 팀플) 20240223_JSTL태그, EL태그, Spring식 코드로 전환

이전 단계에서는 java 이클립스에서 만든 코드를 Spring에 넣었으니 이번 단계에서는 코드를 Spring 답게 만드는 단계이다. 회원 가입 이력 없음 회원 정보가 없습니다. 입력하신 정보를 다시 한번 확인해주세요. 로그인 회원정보 찾기 - 이 페이지는 특별히 3가지 방법으로 데이터를 출력했다. - 1. 기존 jsp코드: 로그인 - 2. EL태그: 회원정보 찾기 - 3. jstl태그: href=""> //멤버 리스트 찾기 @RequestMapping(value = "/memberList", method = RequestMethod.GET) public ModelAndView memberList() { ModelAndView mav = new ModelAndView(); List list = serv.s..