# oauth2 를 사용하기 위해서는 아래의 TODO 를 등록해야 함
spring:
  security:
    oauth2:
      client:
        registration:
          # /oauth2/authorization/google
          google:
            client-id: google_client_id # TODO
            client-secret: google_client_secret # TODO
            scope: profile,email
          # 네이버는 Spring Security를 공식 지원하지 않기 때문에 CommonOAuth2Provider 에서 해주는 값들을 수동으로 입력한다.
          # /oauth2/authorization/naver
          naver:
            client-id: naver_client_id # TODO
            client-secret: naver_client_secret # TODO
            redirect_uri: "{baseUrl}/{action}/oauth2/code/{registrationId}"
            authorization_grant_type: authorization_code
            scope: name,email,profile_image
            client-name: Naver
          # /oauth2/authorization/kakao
          kakao:
            client-id: kakao_client_id # TODO
            client-secret: kakao_client_secret # TODO
            redirect-uri: "{baseUrl}/{action}/oauth2/code/{registrationId}"
            client-authentication-method: POST
            authorization-grant-type: authorization_code
            scope: profile_nickname, account_email
            client-name: Kakao
        provider:
          naver:
            authorization_uri: https://nid.naver.com/oauth2.0/authorize
            token_uri: https://nid.naver.com/oauth2.0/token
            user-info-uri: https://openapi.naver.com/v1/nid/me
            # 기준이 되는 user_name 의 이름을 네이버에서는 response로 지정해야한다. (네이버 회원 조회시 반환되는 JSON 형태 때문이다)
            # response를 user_name으로 지정하고 이후 자바 코드로 response의 id를 user_name으로 지정한다. (스프링 시큐리티에서 하위 필드를 명시할 수 없기 때문)
            user_name_attribute: response
          kakao:
            authorization_uri: https://kauth.kakao.com/oauth/authorize
            token_uri: https://kauth.kakao.com/oauth/token
            user-info-uri: https://kapi.kakao.com/v2/user/me
            user_name_attribute: id
