๐Ÿ‡จ๐Ÿ‡ณ Discourse์—์„œ Google ๋กœ๊ทธ์ธ ์„ค์ •

์ด ๊ธ€์—์„œ๋Š” Discourse์—์„œ Google OAuth2๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธํ•˜๋„๋ก ๋“ฑ๋ก์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

Google ์ฝ˜์†” ์„ค์ •

https://console.developers.google.com ์œผ๋กœ ์ด๋™ํ•œ ํ›„, ์™ผ์ชฝ ์ƒ๋‹จ์˜ **ํ”„๋กœ์ ํŠธ ์„ ํƒ (Select a project)**์„ ํด๋ฆญํ•˜์„ธ์š”.

image

์ƒˆ ํ”„๋กœ์ ํŠธ

์ƒ๋‹จ ์˜ค๋ฅธ์ชฝ์˜ **์ƒˆ ํ”„๋กœ์ ํŠธ (New Project)**๋ฅผ ํด๋ฆญํ•˜์„ธ์š”.

ํ”„๋กœ์ ํŠธ ์ •๋ณด ์ž…๋ ฅ

ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ (Project Name) ํ•„๋“œ์— ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”. **ํ”„๋กœ์ ํŠธ ID (Project ID)**๋„ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ID๋ฅผ ํŽธ์ง‘ํ•˜๋Š” ๊ฒƒ์€ ์„ ํƒ ์‚ฌํ•ญ์ด๋ฉฐ, ์ดํ›„ **์ƒ์„ฑ (Create)**์„ ํด๋ฆญํ•˜์„ธ์š”.

์ด ์ž‘์—…์—๋Š” ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ธ๋‚ด์‹ฌ์„ ๊ฐ€์ง€๊ณ  ๊ธฐ๋‹ค๋ ค ์ฃผ์„ธ์š”.

์ƒ์„ฑ ์˜ค๋ฅ˜

์ƒ์„ฑ ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ๊ฒฝ์šฐ ์ƒ์„ฑ ์˜ค๋ฅ˜๋ฅผ ๋ฌด์‹œํ•˜๊ณ  Ctrl+F5๋ฅผ ๋ˆŒ๋Ÿฌ ์ƒˆ๋กœ๊ณ ์นจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ์ถœ ๋ฐ ๊ฒ€์ฆ

https://support.google.com/cloud/answer/9110914#submit-app-ver ๋งํฌ์˜ ์„ค๋ช…์— ๋”ฐ๋ผ ํ”„๋กœ์ ํŠธ๋ฅผ Google Cloud Platform์— ์ œ์ถœํ•˜์—ฌ ๊ฒ€์ฆํ•ด ์ฃผ์„ธ์š”.

์™ธ๋ถ€ ๋งํฌ ์ƒ์„ฑ

ํ”„๋กœ์ ํŠธ์—์„œ ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ์„ ํƒํ•œ ํ›„, ์™ผ์ชฝ ์ œ์–ด ํŒจ๋„์—์„œ OAuth consent screen ๋ฉ”๋‰ด๋ฅผ ํด๋ฆญํ•˜๊ณ  External์„ ์„ ํƒํ•œ ๋‹ค์Œ Create ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์„ธ์š”.

๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ž…๋ ฅ

Save ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ €์žฅํ•˜๊ธฐ ์ „์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์™„์ „ํžˆ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ์—์„œ ๋„๋ฉ”์ธ ์ด๋ฆ„์ด https://demo.site.com์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅํ•˜๋Š” URL์— https ๋˜๋Š” http ํ”„๋กœํ† ์ฝœ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

:information_source: 2021๋…„ 9์›” 13์ผ๋ถ€ํ„ฐ Google์€ Google ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ชจ๋“  ์›น์‚ฌ์ดํŠธ๊ฐ€ https๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์š”๊ตฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Application logo๋Š” ์ˆ˜์ •ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ, ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ž์‹ ์˜ ๋กœ๊ณ ๋ฅผ ์—…๋กœ๋“œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„ Google์ด ์‚ฌ์ดํŠธ๋ฅผ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

Credentials

์ด์ œ Credentials๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์™ผ์ชฝ์˜ Credentials ํƒญ์œผ๋กœ ์ด๋™ํ•œ ํ›„ + CREATE CREDENTIALS ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ , OAuth client ID๋ฅผ ์„ ํƒํ•˜์—ฌ ์ƒ์„ฑํ•˜์„ธ์š”.

์œ ํ˜• ์„ ํƒ

๋‹ค์Œ ํ™”๋ฉด์—์„œ Application Type์˜ ์ธ์ฆ ์œ ํ˜•์„ Web application์œผ๋กœ ์„ ํƒํ•˜์„ธ์š”.

Authorized JavaScript Origins ํ™”๋ฉด์—์„œ ์›น์‚ฌ์ดํŠธ URL์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ์ด ์›น์‚ฌ์ดํŠธ URL์€ http:// ๋˜๋Š” https://๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Authorized Redirect URI ๋ถ€๋ถ„์—์„œ๋Š” ์ด์ „์— ์ž…๋ ฅํ•œ URL ๋’ค์— /auth/google_oauth2/callback์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ๋‹ค์Œ Create ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ƒ์„ฑํ•˜์„ธ์š”.

:information_source: 2021๋…„ 9์›” 13์ผ๋ถ€ํ„ฐ Google์€ Google ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ชจ๋“  ์›น์‚ฌ์ดํŠธ๊ฐ€ https๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์š”๊ตฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Discourse ์›น์‚ฌ์ดํŠธ๋Š” https๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ํ‚ค ์Œ ํš๋“

OAuth ํด๋ผ์ด์–ธํŠธ ๋Œ€ํ™” ์ƒ์ž์— client ID์™€ secret์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

ํ‚ค ์Œ ๋ณด๊ธฐ (์„ ํƒ ์‚ฌํ•ญ)

์ด ๋‹จ๊ณ„๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ด์ œ ํ”„๋กœ์ ํŠธ์—์„œ Credentials ์˜ต์…˜์„ ํด๋ฆญํ•˜๋ฉด OAuth ํ‚ค๋ฅผ ์ฐพ์•„ ํŽธ์ง‘ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Discourse ์„ค์ •

Discourse ์„ค์ •์—์„œ enable google oauth2 logins๋ฅผ ํด๋ฆญํ•œ ํ›„, ์œ„์—์„œ ์–ป์€ google oauth2 client id์™€ google auth2 client secret๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.

์œ„์—์„œ ์–ป์€ ํ‚ค ์Œ์„ ์˜ฌ๋ฐ”๋ฅธ ์„ค์ • ๋Œ€ํ™” ์ƒ์ž์— ์ž…๋ ฅํ•˜์„ธ์š”.

์ด๋กœ์จ Google ๋กœ๊ทธ์ธ ์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Discourse์˜ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ํ†ตํ•ด ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒ

Gsuite ๋กœ๊ทธ์ธ ์„ค์ •์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด google oauth2 hd ์„ค์ • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ID ํ† ํฐ์€ Discourse ์—์„œ ๊ฒ€์ฆ๋ฉ๋‹ˆ๋‹ค. ์œ„์˜ ๋งํฌ๋Š” Discourse๊ฐ€ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์†Œ์Šค ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์›๋ฌธ iSharkFly - ้ฃž้ฒจ ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ณต์‹ ์ง€์›์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

1๊ฐœ์˜ ์ข‹์•„์š”