

์๋ก๋น๋ธ๋ก๊ทธ์ ์คํ๋ง ๋ถํธ๋ก OAuth2 ๊ตฌํ(ํ์ด์ค๋ถ, ๊ตฌ๊ธ, ์นด์นด์ค, ๋ค์ด๋ฒ)๊ธ์ ์ฐธ๊ณ ํ์๋ฉด ๋์์ด ๋ ๊ฒ์
๋๋ค.์ง์๊ณผ ๊ฟํ์ด ๋์น๋ "์๋ก๋น" ๋ธ๋ก๊ทธ ๋ฐฉ๋ฌธํ๊ธฐ
"์คํ๋ง ๋ถํธ๋ก OAuth2 ๊ตฌํ(ํ์ด์ค๋ถ, ๊ตฌ๊ธ, ์นด์นด์ค, ๋ค์ด๋ฒ)" ๊ธ ๋ณด๋ฌ๊ฐ๊ธฐ

๐กโ ํ์ง๋ง ๊ธ์ ๋ด์ฉ๊ณผ ์ฌ์ง์ ๋ชจ๋ ๋ฐ๋ํ ๊ฐ์ฌ๋์ ๊ฐ์ ๋ด์ฉ์
๋๋ค. โ๐ก
https://developers.kakao.com/ ๋ก๊ทธ์ธ
redirect URI
์คํ๋ง ๋ถํธ์ ์ํ๋ฆฌํฐ๋ฅผ ์ฐ๊ณ ์์ด์
yamlํ์ผ์์ ์ค์ ํ redirect-uri ๋ถ๋ถ์ ์ ์ด์ผ ํ๋ค
๋์ ํญ๋ชฉ
์ด๋ฉ์ผ์ ํ์๋์๊ฐ ์๋๋ผ์ ๊ทธ๋ฅ ์ฌ์ฉ์ํ๊ณ , ์นด์นด์คํก ๋ก๊ทธ์ธ ์ฌ์ฉ์์ผ ๊ฒฝ์ฐ์๋ ๋๋ ๋ชจ๋ ์์
๋ก๊ทธ์ธ ์ฌ์ฉ์๋ค์๊ฒ๋ ์ด๋ฉ์ผ ์ ๋ณด๋ฅผ ์ถ๊ฐ ์
๋ ฅํ๊ฒ ๋ง๋ค์ด์ผ ํ ๊ฒ ๊ฐ๋ค
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
https://developers.naver.com/main/ ๋ก๊ทธ์ธ
์๋น์ค URL
- ๋ฃจํธ ์ฃผ์ or ๊ตฌ๋งคํ ๋๋ฉ์ธ
Callback URL
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
์น์ธ๋ ๋๋ฉ์ธ : ์ง์ง ๋๋ฉ์ธ๋ง ํ๋ฉด๋๋ค. ๋ก์ปฌ ํธ์คํธ๋ฉด ๋์ด๊ฐ๋ฉด ๋๋ค.
๋ฒ์, ํ ์คํธ ์ฌ์ฉ์ ๊ทธ๋ฅ ๋์ด๊ฐ๋ฉด ๋๋ค.
์น์ธ๋ ๋ฆฌ๋ค๋ ์ URL
uri /login/oauth2/code/ .png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
https://github.com/BASIC-SKILLS/LEARN-SPRING-FACEBOOK/blob/master/src/main/resources/application.txt
yaml ํ์ผ์ spring 1์ฐจ ๋ฐ์ ๋ฃ์ด์ผ ํ๋ค.
์์๋ค์ด ์์ฃผ ์ค์ํ๋ค
์๋ฅผ ๋ค๋ฉด, auth2๋ security ์์, client๋ auth2์์ ์์ด์ผ ํ๋ค.
security:
oauth2:
client:
registration:
google:
client-id: your-client-id
client-secret: your-client-secret
redirectUri: "{baseUrl}/oauth2/callback/{registrationId}"
scope:
- profile
- email
facebook:
client-id: your-client-id
client-secret: your-client-secret
redirectUri: "{baseUrl}/oauth2/callback/{registrationId}"
kakao:
authorization-grant-type: authorization_code
client-id: your-client-id
client-secret: your-client-secret
redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
scope:
- profile
- account_email
client-authentication-method: POST
client-name: Kakao
naver:
authorization-grant-type: authorization_code
client-id: your-client-id
client-secret: your-client-secret
redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
scope: name,email,profile_image
client-name: Naver
provider:
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: properties
# JSON ํํ์์ "properties"๋ผ๋ key๊ฐ์ ํด๋นํ๋ value์ ํ์ ์ ๋ณด๊ฐ ๋ด๊ฒจ์ ธ์๋ค.
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-attribute: response
# JSON ํํ์์ "response"๋ผ๋ key๊ฐ์ ํด๋นํ๋ value์ ํ์ ์ ๋ณด๊ฐ ๋ด๊ฒจ์ ธ์๋ค.
CustomUserPrincipalํด๋์ค์ implements์ OAuth2Userํด๋์ค ์ถ๊ฐ.png)
Pom.xml ์
๋ฐ์ดํธoauth2-client ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ.png)
DB ์
๋ฐ์ดํธprovider์ปฌ๋ผ ์ถ๊ฐ , ๊ธฐ๋ณธ๊ฐ์ local๋ก ์ค์ .png)
.png)