본문 바로가기
Study in Bootcamp/Pre-Project

[Pre-Project] Day 10 : OAuth2 구현해보기 및 MySql Update

by Bhinney 2022. 11. 3.

프로젝트를 하는 과정에 있어서 기록하는 것이다.

잘못된 부분이나 수정이 필요한 부분은 꾸준히 수정할 예정이다.


✅ 데이터 입출력 확인 및 MySQL Update로 작업 확인

  • 이제 어느 정도 백엔드 작업이 틀이 많이 갖춰지게 되었다.
  • 그래서 DB에 잘 들어가는지, 입출력이 잘 되는지 합쳐서 확인해보았다.
  • 우선 지금 상태로는 잘 들어가고, 이제 여기서 권한과 유저 아이디를 받아와서 확인하는 작업을 거칠 것 같다.
  • MySQL도 Update로 바꿔서 확인해보았다.
  • 아래의 코드처럼 application.yml 파일을 수정해주었다. (그 전에는 ddl-auto를 create로 해주었다.)
  • MySQL 워크 벤처로 조금 쉽게 접근해서 확인하였다.
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    password: [패스워드]
    url: jdbc:mysql://localhost:3306/[DB 이름]?serverTimezone=UTC&characterEncoding=UTF-8
    username: [유저 네임]
  jpa:
    hibernate:
      ddl-auto: update  
    show-sql: true 
    properties:
      hibernate:
        format_sql: true

  • ddl - auto 값 설명
    • create : 기존 테이블 삭제 후 재생성 (DROP + CREATE)
    • create-drop : create와 같으나 종료시점에는 테이블 DROP
    • update : 변경 분만 반영됨
    • validate : 엔티티 정상 매핑 확인
    • none : 사용하지 않음. (관례상)
  • 운영 시, create, create-drop, update는 절대 사용하면 안됨
  • 이번에 이렇게 update로 하는 이유 : 기본적인 데이터를 넣어서 출력해보고싶다고 프론트 측에서 요청이 들어왔기 때문!
  • 아마 이번 주중으로 같이 합쳐서 돌려보지 않을까 한다.
  • update라 데이터를 저장해놓고 나중에 다시 돌려도 데이터 값이 그대로 있다. (우측 사진의 created_At 참조)

✅ OAuth2 구현해보기

  • 실습했던 예제를 따라해도 계속해서 잘 되지 못했다.
  • 오늘 드디어 OAuth2 PostMan은 응답이 나왔다.
  • 하지만 사이트로 접속하면 아직도 redirect_uri가 잘못되었다고 뜬다...
  • 근데 제대로 제공했다는 게 함정... 뭐가 문제일까.

  • 위의 사진은 로컬 호스트로 접속한 것 --> 그 뒤에는 막혔다.
  • 아래 코드에 적힌 주소로 접근
  • https://accounts.google.com/o/oauth2/auth?client_id=[클라이언트아이디]&redirect_uri=[주소]&response_type=code&scope=https://www.googleapis.com/auth/drive.metadata.readonly

 

  • 위는 포스트 맨의 헤더 요청을 같이 날려본 것이다
  • 근데 전에 다른 걸로 작업을 했을 때에는 헤더로 잘 들어왔는데... 왜 안되는 지는 사실 모르겠다 아직
  • http://localhost/home?access_token=[accessToken]&refresh_token=[refreshToken]로 들어온걸 직접 확인했기 때문이다.

✅ JWT 로그아웃 구현

  • .login().disable() 처럼 .logout().disable() 해야한다.
  • Redis를 공부해보고 있는데 아직 어려운 것 같다.
  • LogoutFilter를 구현해서 적용할 수 있는지 확인해보면 좋을 것 같다.
  • AccessToken, Refresh Token의 관리가 프론트에서 정확히 어떻게 되는지 내일 확인해 볼 것!

✅ OAuth2 & 자체 로그인 동시 구현 현황(?)

  • 레퍼런스들을 보았는데, 지금은 안 쓰는 클래스나 어노테이션을 참고하는 걸 많이 보았다.
  • 우선 첫 번째로 동시 구현하는데, 안되면 나중에 혼자서라도 여러 개의 소셜 로그인을 구현해 볼 것.
  • 대부분의 레퍼런스나 예제들이 Form Login과 같이 구현하는데, 이것도 나중에 혼자라도 해 보기!

🔥 내일 할 것

  1. JWT Logout 공부
  2. Logout Filter 공부
  3. Token 이용해서 권한 유지(?) 혹은 확인 하는 거 찾아보기 (@ResquestHeader)
  4. OAuth2 포기하지 말고 계속 도전
  5. 동시 구현도 포기하지 말고 계속 찾기

댓글