๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

oauth25

[OAuth2] OAuth2 ๋กœ๊ทธ์ธ ํ›„ SuccessHandler ๊ตฌํ˜„ @RequiredArgsConstructor@Componentpublic class OAuth2SuccessHandler extends SimpleUrlAuthenticationSuccessHandler { public static final String REFRESH_TOKEN_COOKIE_NAME = "refresh_token"; public static final Duration REFRESH_TOKEN_DURATION = Duration.ofDays(14); public static final Duration ACCESS_TOKEN_DURATION = Duration.ofDays(1); public static final String REDIRECT_PATH = "/artic.. 2025. 5. 17.
[OAuth2] ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“  OAuth2 ํ๋ฆ„ ์ •๋ฆฌ ์‹œ๊ฐ„ ์ˆœ์„œ๋Œ€๋กœ [1] ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ํด๋ฆญ -> ์„œ๋ฒ„ ์š”์ฒญ GET /oauth2/authorization/kakao Spring Security๊ฐ€ ํ•„ํ„ฐ ์ฒด์ธ์—์„œ ์ฒ˜๋ฆฌ,OAuth2AuthorizationrequestRedirectorFilter๊ฐ€ ๋™์ž‘ [2] ์„œ๋ฒ„ : OAuth2AuthorizationRequest ๊ฐ์ฒด ์ƒ์„ฑOAuth2AuthorizationRequest authorizationRequest = OAuth2AuthorizationRequest .authorizationCode() .clientId("KAKAO_CLIENT_ID") .authorizationUri("https://kauth.kakao.com/oauth/authorize") .redirectUr.. 2025. 5. 16.
[OAuth2] OAuth2 ์‚ฌ์šฉ์ž ์„œ๋น„์Šค ๊ตฌํ˜„ํ•˜๊ธฐ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์กฐํšŒํ•ด์„œ, ์œ ์ € ํ…Œ์ด๋ธ”์— ์ •๋ณด๊ฐ€ ์žˆ๋Š” ์‚ฌ์šฉ์ž๋ผ๋ฉด๋ฆฌ์†Œ์Šค ์„œ๋ฒ„์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ์ด๋ฆ„์„ ์—…๋Žƒํ•ด์คŒ. ์œ ์ € ํ…Œ์ด๋ธ”์— ์ •๋ณด๊ฐ€ ์—†๋Š” ์‚ฌ์šฉ์ž๋ผ๋ฉด์ƒˆ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•ด์„œ DB์— ์ €์žฅ @Table(name = "users")@NoArgsConstructor(access = AccessLevel.PROTECTED)@Getter@Entitypublic class User implements UserDetails { // ์ƒ๋žต // ๋‹‰๋„ค์ž„ ํ•„๋“œ ์ถ”๊ฐ€ @Column(name = "nickname", unique = true) private String nickname; // ๋นŒ๋“œ ํŒจํ„ด์— ๋‹‰๋„ค์ž„ ์ถ”๊ฐ€ @Builder public User(String email, String .. 2025. 5. 11.
[OAuth] ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ1 ( ํ† ํฐ ๋ฐœ๊ธ‰๋ฐ›๊ธฐ) ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ํ•˜๋ ค๋ฉด, ์ธ์ฆ์„œ๋ฒ„์—๊ฒŒ ํ† ํฐ ์ œ๊ณต ๋ฐ›์•„์•ผ๋จ. 1. ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ์ฝ˜์†” ๋“ค์–ด๊ฐ€์„œhttps://cloud.google.com/cloud-console https://cloud.google.com/cloud-console cloud.google.com [์ฝ˜์†”] ๋ฒ„ํŠผ ํด๋ฆญ. (์ตœ์ดˆ๋ฉด ์‚ฌ์šฉ ๋™์˜ ํ™”๋ฉด ๋œฐ๊ฑฐ์ž„. ๋™์˜ํ•˜๊ณ  ์ ˆ์ฐจ ๋งˆ์น˜๋ฉด ๋จ) 2. ์™ผ์ชฝ ์œ„์˜ [ํ”„๋กœ์ ํŠธ ์„ ํƒ] ํด๋ฆญ, 2-1. [์ƒˆ ํ”„๋กœ์ ํŠธ] ๋ฒ„ํŠผ ํด๋ฆญ 3. ํ”„๋กœ์ ํŠธ ์ด๋ฆ„, ์กฐ์ง ์•Œ์•„์„œ ์ž˜ ์„ค์ •ํ•˜๊ณ [๋งŒ๋“ค๊ธฐ] ๋ฒ„ํŠผ ํด๋ฆญ 4. ์˜ค๋ฅธ์ชฝ ์œ„ ์•Œ๋ฆผ(์ข…๋ชจ์–‘)์— ๋ณด๋ฉด ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ณด์ž„๊ทธ๊ฑฐ ํด๋ฆญ 5. [API ๋ฐ ์„œ๋น„์Šค] - [์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด] ํด๋ฆญ 6. ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์˜ [๋™์˜ ํ™”๋ฉด ๊ตฌ์„ฑ] ํด๋ฆญ 7. ์ฑ…์—์„œ๋Š” User Ty.. 2025. 5. 7.
[OAuth] OAuth๋ž€? ํ๋ฆ„, ์šฉ์–ด ์ •๋ฆฌ OAuth๊ฐ€ ๋ญ˜๊นŒ?OAuth๋Š” ์ œ 3์˜ ์„œ๋น„์Šค์— ๊ณ„์ • ๊ด€๋ฆฌ๋ฅผ ๋งก๊ธฐ๋Š” ๋ฐฉ์‹์ž„.ex) ์นด์นด์˜ค๋กœ ๋กœ๊ทธ์ธํ•˜๊ธฐ, ๋„ค์ด๋ฒ„๋กœ ๋กœ๊ทธ์ธํ•˜๊ธฐ ๋“ฑ๋“ฑ.. OAuth ์šฉ์–ด ์ •๋ฆฌ๋จผ์ € ํ•˜๊ฒ ์Œ. ๋ฆฌ์†Œ์Šค ์˜ค๋„ˆ(resource owner)์ธ์ฆ ์„œ๋ฒ„์— ์ž์‹ ์˜ ์ •๋ณด์‚ฌ์šฉ์„ ํ—ˆ๊ฐ€ํ•˜๋Š” ์ฃผ์ฒด.์„œ๋น„์Šค ์ด์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ฆฌ์†Œ์Šค ์˜ค๋„ˆ์ž„. ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„(resource server)๋ฆฌ์†Œ์Šค ์˜ค๋„ˆ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ , ์˜ค๋„ˆ์˜ ์ •๋ณด๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ์ฃผ์ฒด.๋„ค์ด๋ฒ„, ์นด์นด์˜ค, ๊ตฌ๊ธ€์ด ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„์ž„. ์ธ์ฆ ์„œ๋ฒ„(Authorization server)ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฆฌ์†Œ์Šค ์˜ค๋„ˆ์˜ ์ •๋ณด์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ† ํฐ ๋ฐœ๊ธ‰ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์‹ค์ œ ์šด์˜์—์„œ๋Š” ์นด์นด์˜ค๊ฐ™์€ ๊ธฐ๊ด€์ด ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„, ์ธ์ฆ์„œ๋ฒ„ ์—ญํ•  ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ) ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(Client Applica.. 2025. 5. 7.
๋ฐ˜์‘ํ˜•