๐งฉ PostgreSQL์ Auth0 ์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๊ตฌ์ฑ
๐ Auth0์ PostgreSQL์ ์ฐ๊ฒฐํ์ฌ ์ฌ์ฉ์ ์ ์ฅ์๋ฅผ ๋ง๋ค๊ณ ์ ์งํฉ๋๋ค.
Auth0์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ ์ฅ์๋ฅผ ๋ง๋ค๊ณ ์ ์งํ๋ฉฐ ์์ ํ ์ธ์ฆ ์์คํ ์ ์ ๊ณตํ ์ ์์ต๋๋ค.Auth0์์๋ ์ฌ์ฉ์๋ฅผ ์์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ์ ์์ต๋๋ค.๋ํ Auth0์ OAuth 2.0์ ๊ถํ ์์ฌ ํ๋ ์์ํฌ๋ก ์ฌ์ฉํ์ฌ ์์ ์ฑ์ ์์ฌํ๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค.Auth0์์ ์ฌ์ฉ์ ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉ์ ์ ์ฅ์๋ก ์ฌ์ฉํ๋ฉด user migration์ ๋์์ด ๋๊ณ OAuth์ OpenID Connect์ธต์ ๊ธฐ์กด ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ถ๊ฐํฉ๋๋ค.ASP๋ฅผ ํฌํจํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ์น ์๋น์ค๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.NET ๊ตฌ์ฑ์ ์๊ฒฉ ์ ๊ณต ํ๋ก๊ทธ๋จ,MongoDB,MySQL,PostgreSQL,Auth0 ์ฌ์ฉ์ ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค.์ด ๋ฌธ์์์ PostgreSQL์Auth0์ ์ฌ์ฉ์ ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ๊ฒ์ ๋๋ค.
Limited Access: Some features are available depending on your Auth0 subscription. For more information, see Auth0 pricing plans.
์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ
Auth0 ๊ณ์ ์ด ์์ง ์์ต๋๊น?Sign up for free right now!
log in์ ์๋ฃํ๋ฉด Database connections page(Auth0 ๋์๋ณด๋ > ์ธ์ฆ > ๋ฐ์ดํฐ๋ฒ ์ด์ค)์ผ๋ก ์ด๋ํฉ๋๋ค.createdb Connection ๋จ์ถ๋ฅผ ๋๋ฅด๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ข์ ์ด๋ฆ์ ์ง์ ๋ค์Create ๋จ์ถ๋ฅผ ๋๋ฅด์ญ์์ค.์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํญ์ผ๋ก ์ด๋ํ์ฌ ๋ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
Auth0์ ๋ ธ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.js ์คํฌ๋ฆฝํธ, ๋์ ์คํฌ๋ฆฝํธ๋ผ๊ณ ํ๋๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๊ณ ์ ๊ทผํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.์ด๋ฌํ ์คํฌ๋ฆฝํธ์๋ JavaScript ํจ์๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์ฌ์ฉ์ ์ถ๊ฐ, ๋ก๊ทธ์ธ ์ฌ์ฉ์ ๋ฑ ๋ค์ํ ์์ ์ ์ํํ ์ ์์ต๋๋ค.๋ค์ ์์ ์ ์ํํ๋ ค๋ฉด ์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ํด์ผ ํฉ๋๋ค.
email
๊ณผ password
์ ์๋ก์ด ์ฌ์ฉ์๋ฅผ PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฝ์
ํฉ๋๋ค.undefined
์ผ๋ก ๋์๊ฐ๋๋ค.PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์
๋ก์ปฌ ํ๊ฒฝ์์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.๋๋ ์ธํฐ๋ท์ด๋ Database as A Service ๋ฑ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํด์ผ ํ๋ค.์ด ๊ฐ์ข์์ ๋๋ ElephantSQL์ ์ฌ์ฉํ ๊ฒ์ด๋ค. ์ด๊ฒ์ ๋ช ๋ถ ์์ ์์ ํ ์ค์ ๋๊ณ ํด๋ผ์ฐ๋๊ฐ ์ํ ๊ด๋ฆฌํ๋ PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๊ณตํ ๊ฒ์ด๋ค.๊ทธ๋ฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ์ด๋ค ๋ฐ์ดํฐ๋ ํ์ํ์ง ์๋๋ค.๋์ SQL ๋ช ๋ น์ ์คํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํ์ํ ์ ์์ต๋๋ค.๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค๊ณํ์ฌ ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ์ฒด(์: AWS, Google Cloud ๋๋ Heroku)์ ํธ์คํ ํ ์ ์์ต๋๋ค.
https://www.elephantsql.com/์ผ๋ก ๊ฐ์ ์์ ์ ์ํ ๊ณ์ ์ ๋ง๋ค๊ณ ๊ณ์ ์ด ์์ผ๋ฉด ๋ก๊ทธ์ธํ์ธ์.๋์๋ณด๋ ํ์ด์ง๋ก ์๋ดํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.CreateNew ์ธ์คํด์ค๋ฅผ ํด๋ฆญํ์ฌ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค๋ฅผ ์์ฑํฉ๋๋ค.๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋ก์ ์ ํฉํ ์ด๋ฆ์ ์ง์ ํ๊ณ ํ๋ฉด๊ณผ ์์ญ์ ์ ํํ์ญ์์ค.๋๋ ๋ฌด๋ฃ ๊ณํ์ ์ด์ฉํ์ฌ ์์ฐ์ ์งํํ ๊ฒ์ด๋ค.์๊ตฌ ์ฌํญ์ ๋ง๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ฑํ๊ณ [์ธ์คํด์ค ๋ง๋ค๊ธฐ]๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๋์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๋ฌธ์ ํด๊ฒฐ์ ์ํด ElephantSQL documentation์ ์ฐธ์กฐํ์ญ์์ค.
์ด์ ์๋ก ๋ง๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค๋ก ์ด๋ํ์ฌ [์ธ๋ถ ์ ๋ณด] ํ์ด์ง์์ URL์ ๋ณต์ฌํฉ๋๋ค.Auth0 ์์ฉ ํ๋ก๊ทธ๋จ์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๋ ค๋ฉด ์ด๊ฒ์ด ํ์ํฉ๋๋ค.๋๊ตฌ๋ ์ด ์ฐ๊ฒฐ ๋ฌธ์์ด์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ ์ ์์ต๋๋ค.์์ ์ ์ํด์ ๋ง์ฝ ๋ค๊ฐ ๋น๋ฐ์ ์งํฌ ์ ์๋ค๋ฉด ๋์์ด ๋ ๊ฒ์ด๋ค.
PS:Auth0์ ๋ฐฉํ๋ฒฝ์ ์ฌ์ฉํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ๊ตฌ์ฑํ ์ ์๋ ์ฌ๋ฌ IP ์ฃผ์๋ฅผ ์ ๊ณตํฉ๋๋ค.๋๋ ๋์ ์คํฌ๋ฆฝํธ์์ ๊ทธ๊ฒ๋ค์ ์ฐพ์ ์ ์๋ค.
Note: Using your own database leads to several security concerns. Allowing your database accessible over the internet without any firewalls or security measures may result in data leakage.
์ฌ์ฉ์ ์ ์ฅ์ ์ํ ํ ์ด๋ธ ๋ง๋ค๊ธฐ
๋ธ๋ผ์ฐ์ ํญ์ผ๋ก ์ ํํ๊ณ ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค.
CREATE TABLE users(
id UUID DEFAULT uuid_generate_v4(),
nickname VARCHAR(255),
email VARCHAR(255) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email_Verified BOOLEAN DEFAULT FALSE
);
์์ ๋ช ๋ น์ Auth0์์ ์จ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํด
users
์ด๋ผ๋ ์ ํ
์ด๋ธ์ ๋ง๋ค์์ต๋๋ค.์ฌ์ฉ์์ ์ ๋ถ์ ์ ์ฅํ๊ณ ๊ฒ์ฆํ๋ ค๋ฉด ์ ์ด๋ ์๊ธฐ 5์ด์ด ํ์ํฉ๋๋ค.Read more...
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐งฉ PostgreSQL์ Auth0 ์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๊ตฌ์ฑ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/robertinoc_dev/configuring-postgresql-as-auth0-custom-database-4n6jํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค