[API] ๊ตฌ๊ธ€ OAuth๋กœ ํ† ํฐ(access token) ๋ฐœ๊ธ‰๋ฐ›๊ธฐ

2022. 3. 31. 00:29ยท๐Ÿ“ETC./๐Ÿชข API Connection
๋ชฉ์ฐจ
  1. ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ
  2. OAuth ๋™์˜ ํ™”๋ฉด ๊ตฌ์„ฑํ•˜๊ธฐ
  3. OAuth ํด๋ผ์ด์–ธํŠธ ID ๋งŒ๋“ค๊ธฐ
  4. ๋งํฌ
  5. ์—‘์„ธ์Šค ํ† ํฐ ์–ป๊ธฐ
๋ฐ˜์‘ํ˜•

๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๋™ํ•œ๋‹ค.

OAuthํ† ํฐ ์‚ฌ์šฉ

ํฌ์ŠคํŠธ๋งจ (Postman) ์‚ฌ์šฉ

 

 

๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ

https://console.cloud.google.com/

 

Google Cloud Platform

ํ•˜๋‚˜์˜ ๊ณ„์ •์œผ๋กœ ๋ชจ๋“  Google ์„œ๋น„์Šค๋ฅผ Google Cloud Platform์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋กœ๊ทธ์ธํ•˜์„ธ์š”.

accounts.google.com

 

ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ -> ํ”„๋กœ์ ํŠธ๋ช…์„ ์ •ํ•˜๊ณ  ์ƒ์„ฑ

 


 

OAuth ๋™์˜ ํ™”๋ฉด ๊ตฌ์„ฑํ•˜๊ธฐ

API ๋ฐ ์„œ๋น„์Šค -> OAuth ๋™์˜ ํ™”๋ฉด

 

 

'์™ธ๋ถ€'๋กœ ์„ ํƒํ›„ ๋งŒ๋“ค๊ธฐ -> ํ•„์ˆ˜ ํ‘œ์‹œ๋œ ์ •๋ณด ๋‹ค ์ž…๋ ฅ

 

 

 

ํ…Œ์ŠคํŠธ๋กœ ์‚ฌ์šฉํ•  ์‚ฌ์šฉ์ž ๋“ฑ๋ก

- ์—ฌ๊ธฐ์— ๋“ฑ๋กํ•˜์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉ ๋ชปํ•จ 

- ๋“ฑ๋กํ•˜์ง€ ์•Š๊ณ ๋„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ณต์‹๋ฐฐํฌ๋ฅผ ํ•ด์•ผํ•จ

 

 


 

OAuth ํด๋ผ์ด์–ธํŠธ ID ๋งŒ๋“ค๊ธฐ

๋™์˜ํ™”๋ฉด์„ ๋‹ค ๊ตฌ์„ฑํ•˜์—ฌ ์ƒ์„ฑํ•˜์˜€๋‹ค๋ฉด

์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋งŒ๋“ค๊ธฐ -> OAuth ํด๋ผ์ด์–ธํŠธ ID

 

์ƒ์„ฑ

 


 

๋งํฌ

https://accounts.google.com/o/oauth2/v2/auth?
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar&
access_type=offline&
include_granted_scopes=true&
response_type=code&
state=state_parameter_passthrough_value&
redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Ftest&
client_id={ํด๋ผ์ด์–ธ์–ธํŠธ ์•„์ด๋””}

 

- scope : ์ ‘๊ทผ๋ฒ”์œ„ (์œ„๋Š” ๊ตฌ๊ธ€์บ˜๋ฆฐ๋”์˜ ์˜ˆ์‹œ)

- access_type : offline (access token ์ƒˆ๋กœ๊ณ ์นจ)

- response_type : ๋ฐ˜ํ™˜ํ• ๊ฒƒ

- redirect_uri : OAuth ํด๋ผ์ด์–ธํŠธ ID๋ฅผ ์ƒ์„ฑํ• ๋•Œ ์ž…๋ ฅํ•œ ์Šน์ธ๋œ ๋ฆฌ๋””๋ ‰์…˜ URI๋ฅผ urlencode ํ•œ ๊ฒƒ

https://meyerweb.com/eric/tools/dencoder/

 

URL Decoder/Encoder

 

meyerweb.com

- client_id : OAuth ํด๋ผ์ด์–ธํŠธ ID๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฐœ๊ธ‰๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ ID

 

 

 


 

์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑ์„ ๊ฐ–์ถ˜ url๋กœ ์ ‘์†ํ•˜๋ฉด

๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ์ด๋™

- ์—ฌ๊ธฐ์— OAuth ๋™์˜ํ™”๋ฉด์„ ๊ตฌ์„ฑํ• ๋•Œ ๋“ฑ๋กํ•œ ํ…Œ์ŠคํŠธ ์‚ฌ์šฉ์ž๋งŒ ๋กœ๊ทธ์ธํ•˜์—ฌ ์ ‘๊ทผ๊ฐ€๋Šฅ

 

๊ณต์‹ ๋ฐฐํฌํ•˜์ง€ ์•Š์€ ํ…Œ์ŠคํŠธ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „๋ฌธ์ œ ๋ฐœ์ƒ -> '๊ณ„์†'

 

 

'๊ณ„์†'

 

 

์ด ํ™”๋ฉด์˜ ๋งํฌ๋ฅผ ํ™•์ธ

 

http://localhost:8080/test?state=state_parameter_passthrough_value&

code={์ฝ”๋“œ}&

scope=https://www.googleapis.com/auth/calendar

 

์—์„œ {์ฝ”๋“œ}์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„ ์ €์žฅ

 

 

 


 

์—‘์„ธ์Šค ํ† ํฐ ์–ป๊ธฐ

access token๊ณผ refresh token์„ ๊ธฐ์–ตํ•ด๋‘์ž

access token์˜ ์œ ํšจ๊ธฐ๊ฐ„์€ 1์‹œ๊ฐ„์ด๋‹ค.

 


 

*refresh token์ด ์—†๋‹ค๋ฉด

๊ธฐ๋ณธ์ ์œผ๋กœ refresh token์€ access token์„ ์ฒ˜์Œ ๋ฐœ๊ธ‰๋ฐ›์„๋•Œ๋งŒ ๋„˜๊ฒจ์ค€๋‹ค.

refresh token์„ ๊ณ„์† ๋ฐœ๊ธ‰๋ฐ›๊ณ  ์‹ถ๋‹ค๋ฉด ์ด๊ฑธ ์‚ฌ์šฉํ•˜์ž

 

access_type=offline
response_type=code

๋ฅผ ์ถ”๊ฐ€

https://accounts.google.com/o/oauth2/auth?
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar&
access_type=offline&
response_type=code&
state=state_parameter_passthrough_value&
prompt=consent&
redirect_uri=https%3A%2F%2Fsteadhr.com%2Fdashboard%3Fcalendar&
client_id={ํด๋ผ์ด์–ธ์–ธํŠธ ์•„์ด๋””}

- prompt : ์‚ฌ์šฉ์ž ๋™์˜ ํ™”๋ฉด ์ œ๊ณต (cosent-> ๋ฉ”์‹œ์ง€ ํ‘œ์‹œ O)
์‚ฌ์šฉ์ž ๋™์˜ ํ™”๋ฉด์—์„œ ๋™์˜๋ฅผ ํ•ด์•ผ refresh token ์ด ๋ฐœ๊ธ‰๋œ๋‹ค.

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ“ETC. > ๐Ÿชข API Connection' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[API] ๊ตฌ๊ธ€์บ˜๋ฆฐ๋”API(2) - ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (ํฌ์ŠคํŠธ๋งจ ์‚ฌ์šฉ)  (0) 2022.04.09
[API] ๊ตฌ๊ธ€์บ˜๋ฆฐ๋” API (1) - ์บ˜๋ฆฐ๋” list ํ˜ธ์ถœ  (0) 2022.04.04
[API] ๊ตฌ๊ธ€ ์—‘์„ธ์Šคํ† ํฐ(access token) ์žฌ๋ฐœ๊ธ‰ ๋ฐ›๊ธฐ  (1) 2022.04.02
[API] Slack ์Šฌ๋ž™ API ์—ฐ๋™ -OAuth  (0) 2022.03.16
  1. ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ
  2. OAuth ๋™์˜ ํ™”๋ฉด ๊ตฌ์„ฑํ•˜๊ธฐ
  3. OAuth ํด๋ผ์ด์–ธํŠธ ID ๋งŒ๋“ค๊ธฐ
  4. ๋งํฌ
  5. ์—‘์„ธ์Šค ํ† ํฐ ์–ป๊ธฐ
'๐Ÿ“ETC./๐Ÿชข API Connection' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [API] ๊ตฌ๊ธ€์บ˜๋ฆฐ๋”API(2) - ์ด๋ฒคํŠธ ์ถ”๊ฐ€ (ํฌ์ŠคํŠธ๋งจ ์‚ฌ์šฉ)
  • [API] ๊ตฌ๊ธ€์บ˜๋ฆฐ๋” API (1) - ์บ˜๋ฆฐ๋” list ํ˜ธ์ถœ
  • [API] ๊ตฌ๊ธ€ ์—‘์„ธ์Šคํ† ํฐ(access token) ์žฌ๋ฐœ๊ธ‰ ๋ฐ›๊ธฐ
  • [API] Slack ์Šฌ๋ž™ API ์—ฐ๋™ -OAuth
yujch
yujch
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณต๋ถ€ ๋ฉ”๋ชจ
    ๋ฐ˜์‘ํ˜•
  • yujch
    โœŽRepository
    yujch
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (95)
      • ๐Ÿ“Language (42)
        • ๐ŸŒ HTML (3)
        • ๐ŸŸจ Javascript (4)
        • ๐ŸŸฃ PHP (9)
        • ๐ŸŸข Node.js (6)
        • โ˜• Java (10)
        • โž• Python (9)
        • ๐Ÿ”ต C (1)
      • ๐Ÿ“Framework (11)
        • ๐Ÿƒ Spring (1)
        • ๐ŸŽต Laravel (9)
        • ๐Ÿš„ Express (1)
      • ๐Ÿ“DB (7)
        • ๐Ÿฌ MySQL (6)
        • ๐Ÿ˜ PostgreSQL (1)
      • ๐Ÿ“DevOps (6)
      • ๐Ÿ“Book (2)
      • ๐Ÿ“ETC. (16)
        • โš’๏ธ Tool (11)
        • ๐Ÿชข API Connection (5)
      • ๐Ÿ“์ž๊ฒฉ์ฆ ๊ณต๋ถ€ (10)
        • ๐Ÿ“™ SQLD (7)
        • ๐Ÿ“™ ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ (3)
      • ๐Ÿ“˜ ๋…ธํŠธ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๐Ÿ ํ™ˆ
    • ๐Ÿ“ฎ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • Github
  • ์ธ๊ธฐ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
yujch
[API] ๊ตฌ๊ธ€ OAuth๋กœ ํ† ํฐ(access token) ๋ฐœ๊ธ‰๋ฐ›๊ธฐ

๊ฐœ์ธ์ •๋ณด

  • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ํฌ๋Ÿผ
  • ๋กœ๊ทธ์ธ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.