Spring Security - aouth 구글 로그인

최고요·2023년 4월 22일
3

Spring Security V1 

목록 보기
5/9
post-thumbnail

Spring Security - aouth 구글 로그인


동의화면 클릭합니다.


새 프로젝트 클릭합니다.


프로젝트 이름 설정 후 만들기 클릭합니다.

왼쪽 상단 프로젝트 리스트에서 해당하는 프로젝트를 선택합니다.

oauth동의화면에서 유저타입을 외부로 설정하고 만들기 클릭합니다.

동의화면으로 넘어오면 앱 이름과 사용자의 이메일을 입력하고 만들기 클릭합니다.


사용자 인증정보 클릭합니다.


사용자 인증정보 만들기 - > oauth클라이언트 아이디 만들기 클릭합니다.

애플리케이션 유형은 웹 애플리케이션을 선택해주고
이름을 설정합니다.

승인된 리디렉션 URI은 구글 로그인이 완료가되면 구글서버에서 인증코드를 돌려줍니다.
승인된 리디렉션 URI를 지정하는 이유는 보안상의 이유입니다.

승인된 리디렉션 URI를 지정하지 않으면 인증 서버에서 인가 코드를 반환할 때 악의적인 사용자가 해당 인증 코드를 가로채서 사용자의 인증 정보를 탈취할 수 있습니다.

따라서, 승인된 리디렉션 URI를 지정하여, 인증 서버에서 인가 코드를 반환할 때, 인가 코드를 받아들일 수 있는 클라이언트 애플리케이션의 URI로만 인가 코드가 전송되도록 보안을 강화할 수 있습니다.

또 해당 주소에 대한 컨트롤러는 따로 만들 필요가 없습니다.
라이브러리가 알아서 처리 해주기 때문입니다.


클라이언트 id와 비밀번호는 다른 사람에게 노출되지 않도록 주의하고, 메모장에 옮겨둡니다.

Build.gradle

implementation 'org.springframework.security:spring-security-oauth2-client'


dependencies에 추가해줍니다.

application.yml

application.yml에도 클라이언트 id값과 비밀번호를 입력해줍니다.

scope: Google API에 대한 액세스 권한을 요청하는 범위(scope) 목록입니다.
email과 profile 범위는 사용자의 기본 프로필 정보와 이메일 주소에 액세스하는 데 사용됩니다.

loginForm.html


구글 로그인을 하기위해 버튼을 만들어주고 주소를 입력해줍니다.

<div>
    <a class="btn btn-primary btn-sm mt-1" href="/oauth2/authorization/google">구글 로그인</a>
</div>

href="/oauth2/authorization/(구글,페이스북,카카오...등) "는 스프링부트에서 OAuth2 인증을 처리하는 데 사용되는 URL 경로입니다.

해당 주소에 대한 처리를 하지 않았기 때문에 404에러가 났습니다.

SecurityConfig 클래스에서 설정을 추가해줍니다.

SecurityConfig 클래스

                .and()
                .oauth2Login()
                .loginPage("/loginForm"); // oauth2 로그인 페이지 설정

이제 로그인 화면에서 구글 로그인을 누르면 계정을 선택하는 화면이 나옵니다.

  • 아직 로그인 X 계정을 선택한 후 추가 설정이 필요
profile
i'm best

0개의 댓글