0203 -카카오 소셜 로그인 연습

jinvicky·2023년 2월 3일
0

2023 Spring Project TIL

목록 보기
4/32

전부터 꼭 하고 싶었던게 소셜 로그인이었다. 다른 곳에서 api를 사용하는게 궁금했고 또
소셜 로그인 기능이 없는 사이트가 없으니까.

아래 사이트가 정리를 굉장히 잘했다. 다만 처음이라 카카오 api를 셋팅하고 사용하는데 애를 좀 먹었다.
https://velog.io/@dktlsk6/Spring%EC%9C%BC%EB%A1%9C-%EC%B9%B4%EC%B9%B4%EC%98%A4-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0

카카오 로그인을 검색하면 처음에 애플리케이션을 생성, 등록한다.
그리고 받을 정보를 선택한다. (닉네임은 필수, 이메일은 선택, 프로필 사진 여부 등등이다.)

여기서 중요한건
Rest Api key => 나중에 client_id= 뒤에 들어가야 할 값이다.
redirect uri는 로그인과 로그아웃으로 나뉜다.
로그인의 경우 아래처럼 하면 되는데 코드를 따라하다 보니 logout시 redirect_uri쪽에서 관리자 에러가 났다.

보니까 로그아웃은 별도의 redirect_uri가 있는 거였다. 고급 페이지로 이동해서 설정한다.

그리고 코드 따라하다가 import가 조금 까다로웠다. 검색을 통해 JSONObject, JSOnParser관련 의존성을 pom.xml에 추가하고 import를 검색해서 갖다 붙이는 걸로 에러를 막았다.

<dependency>
			<groupId>org.json</groupId>
			<artifactId>json</artifactId>
			<version>20180813</version>
		</dependency>

		<dependency>
			<groupId>com.googlecode.json-simple</groupId>
			<artifactId>json-simple</artifactId>
			<version>1.1.1</version>
		</dependency>

그리고 @Getmapping이 import가 안된다면 pom.xml에 가서 스프링의 버전을 5.0.7로 올린다.
5부터 @RequestMapping이 추가되어서 그렇다고 알고 있다.

그리고 예외처리 쪽에서 ParseException을 처리를 못했다. 원작자의 코드를 보니 IOException이나 ParseException에 대해 단지 예외발생시 trace를 출력하는 것밖에 하지 않아서
그냥 최고조상 Exception으로 예외 타입을 덜 구체화했다.

페이지 이동은 다음과 같다.
1. 로그인 페이지를 만들고 카카오 로그인 링크를 만든다.
2. 링크를 클릭하면 카카오톡의 로그인화면으로 이동하고 로그인을 진행한다.
3. 로그인이 끝나면 컨트롤러에서 지정한 경로로 이동한다.

여기부터는 내 주관적인 생각이다.
남은 것은 페이지 처리 정리와 db연동이다.
db에 넣는 것은 쉬운 일이다. 하지만 db 설계쪽에서 회원테이블에서 컬럼을 어떻게 처리할 것인지가
궁금해서 팀원들에게 물어봐야겠다.
또한 카카오 로그인을 하면, 실제로 회원가입이 되어야 한다.

카카오 로그인을 한다
1. 세션의 "userInfo" 속성에 카카오에서 받아온 userInfo를 넣는다. 약간 아래 느낌이다.

2. 회원테이블에 해당 유저를 추가한다. 실패시 try-catch로 해서
"회원가입에 문제가 생겼습니다" 등의 메세지를 rattr로 던진다.

테스트는 세션으로 진행할까 한다.
세션에 userInfo가 없으면 카카오 로그인이 안된 것이니 메인과 로그인 페이지 외에는 진입할 수 없다.
오늘은 추가로 파일 업로드도 한번 해보고 싶은데 만약 해낸다면
카카오 로그인한 유저만 파일을 업로드할 수 있고, 업로드할 파일의 썸네일을 볼 수 있다. 기능을 하고싶다.

profile
Front-End와 Back-End 경험, 지식을 공유합니다.

0개의 댓글

관련 채용 정보