๋ชฉ๋ก๐Ÿ–ฅ BE ๋ฐฑ์—”๋“œ/Spring ์Šคํ”„๋ง (32)

Bibi's DevLog ๐Ÿค“๐ŸŽ

[Spring] ๊ตฌ๊ธ€ OAuth ๊ตฌํ˜„ํ•˜๊ธฐ (+JWT)

[Spring] ๊ตฌ๊ธ€ OAuth ๊ตฌํ˜„ํ•˜๊ธฐ (+JWT) ์ถœ์ฒ˜ https://preamtree.tistory.com/167 https://withseungryu.tistory.com/116 ๊ตฌ๊ธ€ ๊ณต์‹๋ฌธ์„œ - OAuth2.0์œผ๋กœ ๊ตฌ๊ธ€API ์•ก์„ธ์Šคํ•˜๊ธฐ ํŠนํžˆ "์„œ๋ฒ„์ธก ์›น ์•ฑ์šฉ OAuth 2.0" ์ฐธ๊ณ  ์ „์ฒด flow /login์œผ๋กœ ์ ‘์† ์‹œ ๊ตฌ๊ธ€ OAuth2.0์„ ์ด์šฉํ•ด ์‚ฌ์šฉ์ž ์ •๋ณด(์Šน์ธ)์„ ์š”์ฒญํ•จ. ์Šน์ธ๋˜๋ฉด ๋ฆฌ๋””๋ ‰์…˜URI๋กœ ์ด๋™. ์ด ๋•Œ ๊ตฌ๊ธ€๋กœ๋ถ€ํ„ฐ code๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์Œ. ๊ตฌ๊ธ€ API ์ฝ˜์†” - API ๋ฐ ์„œ๋น„์Šค - ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด - ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋งŒ๋“ค๊ธฐ - OAuth ํด๋ผ์ด์–ธํŠธ ID - ์•ฑ ์œ ํ˜• ์„ ํƒ - ์ด๋ฆ„ ์„ค์ • - ์Šน์ธ๋œ ๋ฆฌ๋””๋ ‰์…˜ URI ์ง€์ •. โ— ์ด ๋•Œ ๋ฐœ๊ธ‰๋˜๋Š” ํด๋ผ์ด์–ธํŠธID(Client Id), ํด๋ผ์ด..

[Spring] JWT๋กœ ํ† ํฐ ๊ธฐ๋ฐ˜ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ

[airbnbํ”„๋กœ์ ํŠธ] JWT ์ฝ”๋“œ ์„ค๋ช… ์ถœ์ฒ˜ : ์ „์ฒด ์ฝ”๋“œ ์ถœ์ฒ˜๋Š” https://ocblog.tistory.com/56, ์„ค๋ช…์€ yeon์ด ํ•ด ์ฃผ์…จ์Šต๋‹ˆ๋‹ค๐Ÿ™‡‍โ™‚๏ธ JWT ํ† ํฐ ์™œ ์“ฐ๋Š”๊ฐ€? ๋กœ๊ทธ์ธ ์‹œ ์„œ๋ฒ„๊ฐ€ ํ† ํฐ์„ ๋งŒ๋“ค์–ด ํด๋ผ์ด์–ธํŠธ์— ๋ฐœ๊ธ‰ํ•ด ์ค€๋‹ค. ์ดํ›„ ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•œ URL์—์„œ, ํ—ค๋”์— ํ† ํฐ์ด ๋“ค์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ํ† ํฐ์ด ์žˆ์œผ๋ฉด ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ† ํฐ์ด ์—†์œผ๋ฉด ๋กœ๊ทธ์ธ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ด์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์ธํ„ฐ์…‰ํ„ฐ interceptor ์ธํ„ฐ์…‰ํ„ฐ : ์ปจํŠธ๋กค๋Ÿฌ์— ์˜ค๊ธฐ ์ „์— ์กด์žฌํ•˜๋Š” ๋‹จ๊ณ„. ํ”„๋ก ํŠธ๊ฐ€ HTTP Header์— ์šฐ๋ฆฌ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ํ† ํฐ์„ ๋‹ด์•„์„œ ๋ณด๋‚ด์ฃผ๋ฉด ("Authorization" : Bearer ํ† ํฐ) ์šฐ๋ฆฌ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ํ† ํฐ์ด ๋งž๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ํ† ํฐ ..

[Spring boot] ์Šคํฌ๋ฆฝํŠธ์™€ S3 bucket์„ ์ด์šฉํ•œ ์Šคํ”„๋ง ์•ฑ ๋ฐฐํฌ ์ž๋™ํ™”(+ ์Šฌ๋ž™ ๋ด‡, crontab ํ™œ์šฉ)

์Šคํฌ๋ฆฝํŠธ์™€ S3 bucket์„ ์ด์šฉํ•œ ์Šคํ”„๋ง ์•ฑ ๋ฐฐํฌ ์ž๋™ํ™”(+ ์Šฌ๋ž™ ๋ด‡, crontab ํ™œ์šฉ) yeon์ด ์˜ค๋Š˜ ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ€๋ฅด์ณ ์ฃผ์‹  ๋ฐฐํฌ์ž๋™ํ™” ๊ณผ์ •์„ ์ •๋ฆฌํ•ด ๋ณด์•˜๋‹ค! ๐Ÿ™‡‍โ™‚๏ธ (์ถœ์ฒ˜ : S3 bucket์„ ์ด์šฉํ•œ ๋ฐฐํฌ ์ž๋™ํ™”) ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž๋™ํ™”๋ฅผ ํ•˜๊ฒŒ ๋œ๋‹ค. ๋กœ์ปฌ์—์„œ ๋นŒ๋“œํ•œ ์Šคํ”„๋ง ์•ฑ์˜ ๋นŒ๋“œ ํŒŒ์ผ(jar)์„ S3์— ๋„ฃ๊ธฐ ์ธ์Šคํ„ด์Šค๊ฐ€ s3๋ฅผ 1๋ถ„๋งˆ๋‹ค ์ฒดํฌ ๋นŒ๋“œ ํŒŒ์ผ์ด ์ƒˆ๋กœ์šด ๋ฒ„์ „์ด๋ฉด s3์—์„œ ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ [์ค€๋น„๋ฌผ] ์ž˜ ๋Œ์•„๊ฐ€๋Š” ์Šคํ”„๋ง ์•ฑ, aws ๊ณ„์ •๊ณผ ec2 ์ธ์Šคํ„ด์Šค, ์Šฌ๋ž™ (๋กœ์ปฌ) ์Šคํ”„๋ง ์•ฑ์„ ๋นŒ๋“œํ•ด jarํŒŒ์ผ์„ ์ƒ์„ฑํ•จ ํ”„๋กœ์ ํŠธ ํด๋”์—์„œ ./gradlew build jar (ec2) S3์—์„œ ๋ฐฐํฌ์šฉ bucket ์ƒ์„ฑ aws์„œ๋น„์Šค ์ค‘ s3 ์„ ํƒ - ๋ฒ„ํ‚ท - ๋ฒ„ํ‚ท ๋งŒ๋“ค๊ธฐ ๋ฒ„ํ‚ท ์ƒ์„ฑ์‹œ ์ด๋ฆ„์ด ๋‹ค๋ฅธ ๋ฒ„..