์ด ๊ธ์์๋ Discourse์์ Google OAuth2๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ธํ๋๋ก ๋ฑ๋ก์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
Google ์ฝ์ ์ค์
https://console.developers.google.com ์ผ๋ก ์ด๋ํ ํ, ์ผ์ชฝ ์๋จ์ **ํ๋ก์ ํธ ์ ํ (Select a project)**์ ํด๋ฆญํ์ธ์.
![]()
์ ํ๋ก์ ํธ
์๋จ ์ค๋ฅธ์ชฝ์ **์ ํ๋ก์ ํธ (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 ํ๋กํ ์ฝ์ด ํฌํจ๋์ด ์๋์ง ํ์ธํ์ธ์.
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 ๋ฒํผ์ ํด๋ฆญํ์ฌ ์์ฑํ์ธ์.
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 - ้ฃ้ฒจ ์ ์ฐธ์กฐํ์ธ์.
๊ณต์ ์ง์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.








