๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์Šค๋งˆ์ผ๊ฒŒ์ดํŠธ ์„œ๋ฒ„๊ฐœ๋ฐœ์บ ํ”„ 4๊ธฐ

[์„œ๋ฒ„๊ฐœ๋ฐœ์บ ํ”„] ์ธ์ฆ ์„œ๋ฒ„ - ์†Œ์…œ๋กœ๊ทธ์ธ

๋„ค์ด๋ฒ„ ์•„์ด๋””๋กœ ๋กœ๊ทธ์ธ

 ์ธ์ฆ์„œ๋ฒ„์— ๋„ค์ด๋ฒ„ ์•„์ด๋””๋กœ ๋กœ๊ทธ์ธ(๋„ค์•„๋กœ) ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค. ๋„ค์•„๋กœ์˜ ์ „์ฒด์ ์ธ ๋กœ์ง์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 1. NAVER Developers์—์„œ Application์„ ๋“ฑ๋กํ•ด client_id์™€ client_secret์„ ๋ฐœ๊ธ‰๋ฐ›๋Š”๋‹ค.
 2. client_id๋กœ access_code๋ฅผ ์š”์ฒญํ•œ๋‹ค.
 3. client_id์™€ client_secret, access_code๋กœ ์‚ฌ์šฉ์ž ์ •๋ณด์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” access_token๊ณผ refresh_token์„ ์š”์ฒญํ•œ๋‹ค.
 4. access_token์œผ๋กœ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์š”์ฒญํ•œ๋‹ค.

 ์—ฌ๊ธฐ์„œ access_code๋Š” ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋Š” ํ† ํฐ์ด ์•„๋‹ˆ๋ฉฐ, ํ† ํฐ์„ ๋ฐœ๊ธ‰๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•ž์„œ NAVER Developers์—์„œ ๋ฐœ๊ธ‰๋ฐ›์€ client_id ๋ฐ client_secret๊ณผ ๋”๋ถˆ์–ด ์ด access_code๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ดํ›„ ๋ฐœ๊ธ‰๋ฐ›์€ ํ† ํฐ์œผ๋กœ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๋ฐ›์•„์™€, ์ธ์ฆ์„œ๋ฒ„์—์„œ ์šฐ๋ฆฌ ์„œ๋น„์Šค์— ๋งž๋Š” JWT๋ฅผ ๋ฐœ๊ธ‰ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋Œ๋ ค์ฃผ์–ด์•ผํ•œ๋‹ค.

 

์ฝœ๋ฐฑ์ฃผ์†Œ๋ฅผ ์ธ์ฆ์„œ๋ฒ„๋กœ?

 ๋„ค์•„๋กœ๋ฅผ ์šฐ๋ฆฌ ์„œ๋ฒ„์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ฒ˜์Œ ์ƒ๊ฐํ–ˆ๋˜ ๋กœ์ง์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

 

 ์ฝœ๋ฐฑ์ฃผ์†Œ๋ฅผ ์šฐ๋ฆฌ ์ธ์ฆ์„œ๋ฒ„๋กœ ๋‘๊ณ  ๋ชจ๋“  ์ธ์ฆ๊ณผ์ •์„ ๊ฑฐ์นœ ํ›„์—, ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌํ•ด์ฃผ๋ คํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋•Œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์šฐ๋ฆฌ ์ธ์ฆ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ธ ๊ฒƒ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ฅผ ์‹œ์ผœ์ค˜์•ผํ–ˆ๋Š”๋ฐ, ํ† ํฐ์„ ์ „๋‹ฌํ•˜๊ธฐ๊ฐ€ ์• ๋งคํ–ˆ๋‹ค. ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋กœ ํ† ํฐ์„ ์ „๋‹ฌํ•˜๋ ค๋ฉด ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์„ ์‚ฌ์šฉํ•ด์•ผํ•˜์ง€๋งŒ, URL์— ํ† ํฐ ์ •๋ณด๊ฐ€ ๋“œ๋Ÿฌ๋‚˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.  (์ง€๊ธˆ ์ƒ๊ฐํ•˜๋‹ˆ RedirectAttributes๋ฅผ ํ™œ์šฉํ–ˆ๋‹ค๋ฉด ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ์—ˆ์„ ๊ฒƒ ๊ฐ™๋‹ค... https://bit.ly/38ll9Ma)

 

๋กœ์ง ๋ณ€๊ฒฝ ํ›„

 ํ† ํฐ ์ „๋‹ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋กœ์ง์„ ๋ณ€๊ฒฝํ–ˆ๋‹ค.

 

 

 ์ผ๋‹จ ํด๋ผ์ด์–ธํŠธ๊ฐ€ client_id๋กœ access_code๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๋Š”๋‹ค. ๋ฐœ๊ธ‰ ๋ฐ›์€ access_code๋กœ ์šฐ๋ฆฌ ์ธ์ฆ์„œ๋ฒ„์— ์†Œ์…œ(๋„ค์ด๋ฒ„) ๋กœ๊ทธ์ธ์„ ์š”์ฒญํ•œ๋‹ค. ์ธ์ฆ์„œ๋ฒ„๋Š” client_id, access_code, client_secret์œผ๋กœ ๋„ค์ด๋ฒ„์— ํ† ํฐ์„ ์š”์ฒญํ•œ ํ›„, ํ•ด๋‹น ํ† ํฐ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์–ป๋Š”๋‹ค. ์ด ํ›„์—๋Š” ๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž์ธ์ง€ ํ™•์ธํ•˜๊ณ , ๋“ฑ๋ก๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ํšŒ์›์œผ๋กœ ๋“ฑ๋ก ํ›„ ์šฐ๋ฆฌ ์„œ๋น„์Šค์— ๋งž๋Š” JWT๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.

 

์‚ฌ์šฉ์ž ์ •๋ณด ์—ฐ๋™

 ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๋ฐ›์€ ์ด ํ›„์˜ ๊ณผ์ •์—์„œ๋„ ๋งŽ์€ ๊ณ ๋ฏผ์ด ์žˆ์—ˆ๋‹ค. ์šฐ๋ฆฌ ์„œ๋น„์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋ฉ”์ผ์„ ์•„์ด๋””๋กœ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ธฐ์กด์— ์šฐ๋ฆฌ ์„œ๋น„์Šค์— ๋„ค์ด๋ฒ„ ์•„์ด๋””๋กœ ๊ฐ€์ž…ํ•œ ๊ฒฝ์šฐ(๋˜๋Š” ๋„ค์•„๋กœ ์ดํ›„์— ์šฐ๋ฆฌ ์„œ๋น„์Šค์— ๊ฐ€์ž…ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ), ํ•ด๋‹น ์‚ฌ์šฉ์ž๋ฅผ ๊ธฐ์กด ์•„์ด๋””์™€ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ ๋กœ์ง์„ ์ผ๋ถ€ ์ˆ˜์ •ํ•ด์•ผํ–ˆ๋‹ค.

 ์‚ฌ์‹ค ๋‹น์—ฐํžˆ ์—ฐ๋™ํ•ด์•ผ๊ฒ ์ง€๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ์ž์†Œ์„ค๋‹ท์ปด์„ ํ™•์ธํ–ˆ๋Š”๋ฐ, ์˜ค์ž‰? ์ž์†Œ์„ค๋‹ท์ปด์—์„œ๋Š” ์„œ๋น„์Šค์—์„œ ์ง์ ‘ ๊ฐ€์ž…ํ•œ ์‚ฌ์šฉ์ž์™€ ๋„ค์ด๋ฒ„ ์•„์ด๋””๋กœ ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ ๋“ฑ๋ก์„ ์‹œ์ผฐ๋‹ค. ์ผ๋‹จ ์ž์†Œ์„ค๋‹ท์ปด์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž๋ฅผ ๋ถ„๋ฆฌํ–ˆ์ง€๋งŒ, ์•„๋ฌด๋ฆฌ ๊ณ ๋ฏผํ•ด๋„ ์—ฐ๋™ํ•˜๋Š” ๊ฒƒ์ด ๋งž๋Š” ๊ฒƒ ๊ฐ™์•˜๊ณ , ์ฐจ์žฅ๋‹˜์˜ ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ๊ฒฐ๊ตญ ์‚ฌ์šฉ์ž๋ฅผ ์—ฐ๋™ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.