2024. 11. 8. 06:24ใStudy_Develop
์๋ ํ์ธ์!
์ ๋ ์์ฆ ์กธ์ ์ ์ํด.. ์กธ์ ์ํ์ ์ ์ํ๊ณ ์๋๋ฐ์!
์๋ฒ๊ตฌํ์ผ๋ก firebase๋ฅผ ์ ํํด ์ฌ์ฉํ๊ณ ์์ต๋๋ค!
์ฒ์์ Firebase๋ฅผ ์ ํํ ์ด์ ๋
์ค์๊ฐ ๋ฐ์ดํฐ ๊ธฐ๋ฅ, ์์ฌ์ด ํตํฉ, ๊ฐํธํ ์ฌ์ฉ์ ์ธ์ฆ ๋ฑ
๋ค์ํ ๊ธฐ๋ฅ์ Firebase์์ ์์ฒด ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋๋ค!
๋ํ ํธ์ ์๋ฆผ, ์คํ๋ผ์ธ ๊ธฐ๋ฅ ๋ฐ ๊ธฐํ ๋ค์ํ ๊ธฐ๋ฅ์ ์ง์ํ๋ฏ๋ก
๋ณต์ก์ฑ์ ์ต์ํํ๋ฉด์ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ ์ ์๊ฐ์ ๋ค์ผ ์ ์์ ๊ฒ ๊ฐ์
์ ํํ๊ฒ ๋์์ด์!
์ฐ์ ์ด๋ค ๋ด์ฉ๋จผ์ ๋ค๋ฃจ์ด ๋ณผ๊น ํ๋ค๊ฐ
์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๋ค๋ฃจ๋ ๋ถ๋ถ์ด ์ฐ์ ์ธ ๊ฒ ๊ฐ์์
Firebase auth๋ก ๋ก๊ทธ์ธ/ํ์๊ฐ์ ๊ตฌํ ๋ถ๋ถ์ ๋จผ์ ์๊ฐํด ๋๋ฆด๊ฒ์!
firebase auth
firebase auth์์๋ ์์ฒด์ ์ผ๋ก ํ์๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ, ๋ก๊ทธ์์, ์ฌ์ฉ์ ์ ๋ณด ์์ ๋ฑ์ ์ํ
๋ค์ํ ์ธ์ฆ ๊ด๋ จ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๊ณ ์์ด์!
์ฐ์ , firebase/auth์ ํ์ํ ๋ฉ์๋๋ฅผ import ํด์ผ๊ฒ ์ฃ ?
https://www.npmjs.com/package/@firebase/auth
์๋ ๊ฒ ์ค์นํด ์ฃผ์๊ณ
import { getAuth } from 'firebase/auth';
์ด๋ ๊ฒ import ํด์ฃผ์ธ์!
์ด๋ ๊ฒ ํ๋ฉด ํ์ฌ ์ ์ํ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค๊ณ ํด์!
๋ฌผ๋ก ๋ก๊ทธ์ธ์ ํ ๋ค์ ์ฌ์ฉ๊ฐ๋ฅํ๊ฒ ์ฃ ?
const auth = getAuth();
const user = auth.currentUser;
console.log(user.photoURL); // ํ๋กํ ์ฌ์ง URL
console.log(user.phoneNumber); // ํด๋ํฐ ๋ฒํธ
console.log(user.metadata); // ์ฌ์ฉ์ ๋ฉํ๋ฐ์ดํฐ(createdAt, creationTime, lastLoginAt, lastSignInTime)
console.log(user.email); // ์ด๋ฉ์ผ
console.log(user.displayName); // ํ์ ์ด๋ฆ
console.log(user.emailVerified); // ์ด๋ฉ์ผ ์ธ์ฆ ์ฌ๋ถ(boolean)
console.log(user.isAnonymous); // ์ต๋ช
์ฌ๋ถ(boolean)
์ด๋ฐ ์์ผ๋ก ๋ก๊ทธ์ธํ ์ฌ์ฉ์์ ๊ฐ์ ธ์ฌ ์ ์๋ ํ๋กํ ์์์ ๋๋ค!
ํน์ ๋ก๊ทธ์ธ oauth google facebook ๋ฑ์ผ๋ก๋ถํฐ ํ๋กํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์๋ ์๋ค๊ณ ํด์!
์ ๊ท ์ฌ์ฉ์ ๊ฐ์
import { getAuth, createUserWithEmailAndPassword } from "firebase/auth";
const auth = getAuth();
createUserWithEmailAndPassword(auth, email, password)
.then((userCredential) => {
// Signed up
const user = userCredential.user;
// ...
})
.catch((error) => {
const errorCode = error.code;
const errorMessage = error.message;
// ..
});
์ด๋ฐ ํํ๋ก ์ฌ์ฉ์๊ฐ ์์์ ์์ฑํ๋ฉด
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์ด๋ฉ์ผ ์ฃผ์์ ์ ํจ์ฑ์ ๊ฒ์ฌํ ํ
createUserWithEmailAndPassword์ ์ ๋ฌํ๊ฒ ๋ฉ๋๋ค.
๊ธฐ์กด ์ฌ์ฉ์ ๋ก๊ทธ์ธ
signInWithEmailAndPassword
์๊ฑธ ์ฌ์ฉํ๋ฉด ๋๋๋ฐ์!
await firebase.auth().signInWithEmailAndPassword(email, password);
์ ๋ ์ ํ๋ก์ ํธ ๋ด์ ์๋ฐ ์์ผ๋ก ์ฌ์ฉํด ์ฃผ์์ต๋๋ค!
์ฌ์ฉ์ ํ๋กํ ์ ๋ฐ์ดํธ
updateProfile
import { getAuth, updateProfile } from "firebase/auth";
const auth = getAuth();
updateProfile(auth.currentUser, {
displayName: "Jane Q. User", photoURL: "https://example.com/jane-q-user/profile.jpg"
}).then(() => {
// Profile updated!
// ...
}).catch((error) => {
// An error occurred
// ...
});
๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ
updatePassword
ํด๋น ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค!
import { getAuth, updatePassword } from "firebase/auth";
const auth = getAuth();
const user = auth.currentUser;
const newPassword = getASecureRandomPassword();
updatePassword(user, newPassword).then(() => {
// Update successful.
}).catch((error) => {
// An error ocurred
// ...
});
์ฌ์ค ํด๋น ๋ด์ฉ๋ค์
https://firebase.google.com/docs/auth?hl=ko
Firebase Authentication
Firebase ์ธ์ฆ์ ์ฌ์ฉํ๋ฉด ์ฝ๋ ๋ช ์ค๋ง์ผ๋ก ์์ฌ์ด ์ฌ์ฉ์ ์ธ์ฆ, ๋ก๊ทธ์ธ, ์จ๋ณด๋ฉ์ ์ํ ์๋ ํฌ ์๋ ID ์๋ฃจ์ ์ ์ฑ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
firebase.google.com
ํด๋น ๊ณต์๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์์ต๋๋ค!
์ ๊ฐ ์์ ์๊ฐํด๋๋ฆฐ ๊ฒ ๋ง๊ณ ๋...
์ ๋ง ์ข์ ๊ธฐ๋ฅ๋ค์ด ๋ง๋๋ผ๊ณ ์....
์ ๊ฐ ํด๋น ๋ด์ฉ์ ๋ค ๋ด๋ ๊ฒ๋ณด๋ค ์ด๋ฐ ๋ฉ์๋ ๋ฑ์ ํ๋ก์ ํธ์์ ์ฌ์ฉ๊ฐ๋ฅํ๋!
๊ผผ๊ผผํ๊ฒ ์ฝ์ด๋ด๋ผ..
์ด๋ฐ ์ทจ์ง์ ๊ธ์ ๋๋คใ ...ใ ใ ใ
๊ผญ๊ผญ ์ฝ์ด๋ณด์๊ณ
ํ์ํ ๊ธฐ๋ฅ ์์ ๋ฝ์ ๋ด ํ๋ก์ ํธ์ ๋ฃ๋
ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ๋ฉ์๋ค!!
๋ค ์คํํ ์๋ ์์ง๋ง..
๋์ถฉ ํ์๊ฐ์ ๋ฐ ์์ ํ๋ฉด ๋ณด์ฌ๋๋ฆด๊ฒ์ ใ ใ
์ ํฌ๋ firebase์ ๋ด์ฅ ๋ฉ์๋ ๋ฑ์ ์ฌ์ฉํ ๊ฒ๋ ์๊ณ
๋ฐ๋ก api ๋ง๋ค์ด์ ์ฌ์ฉํ ๊ฒ๋ค๋ ์์ด์!
๋ค์ ๊ธ์์ ํ๋ก ํธ์๋๋ ์ด๋ป๊ฒ ๊ตฌํํ์๋์ง,
firebase realtime DB ๋ฑ๋ฑ ๋ค์ํ ์ ๋ณด์ ๋ํด์ ๊ฐ์ ธ์ฌ๊ฒ์~~
Firebase๋ฅผ ์ ๊น ์ฌ์ฉํด ๋ณด๊ณ ๋๋ ์ ์
๊ธฐ์กด์ crud ๋ฐฉ์์ ์ฌ์ฉํ๋ ค๋ฉด POST, GET๋ฑ๊ณผ ๊ฐ์
์๋ํฌ์ธํธ๋ฅผ ์ ์ํ๊ณ ํธ์ถํด์ผ ํ๋ฉฐ,
์ด๋ก ์ธํด ์๋ฒ ์ธก ๊ตฌํ๋ ํ๋ก ํธ ๋จ ๊ตฌํ๋ ๋๊ฒ ๋๊ฒ ๋ณต์กํด์ง์์์!
๊ทธ๋ฐ๋ฐ firebase์์ ์ด๋ ๊ฒ ๊ฐ๋จํ๊ฒ ๋ง๋ค์ด์ฃผ์๋ ์ ๋ง ๊ฐ์ฌํ๋ฉด์๋..
๋๋ ์์ผ๋ก ์ด ์งํํ๋ ๊ฐ๋ฐ ์์ฅ์์ ์ด๋ป๊ฒ ์ด์๋จ์์ผ ํ๋...
๊ทธ๋ฐ ์๊ฐ๋ ๋๋ค์...
๋ญ.. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ด์ฌํ ํ๋ ์๋ง์ด ์ด์๋จ๊ฒ ์ฃ ?
ใ ใ
๊ทธ๋ผ ์๋ !
'Study_Develop' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Capstone#4. Axios instance ์์ฑํ๊ธฐ / Axios interceptors (0) | 2024.11.12 |
---|---|
Capstone#2. Firebase ์ธ์ฆ, ๋ง์ถคํ API ํตํฉ (0) | 2024.11.09 |
[axios] Header, Content-Type, MIME, Authorization, (0) | 2023.08.28 |
Ajax - Axios๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ๋ฒ (๊ธฐ๋ณธ ๊ฐ๋ , ๋ฌธ๋ฒ ๊ตฌ์ฑ, ์๋ต ๋ฐ์ดํฐ, get, post, ์๋ฌ์ฒ๋ฆฌ, Promise) (2) | 2023.08.27 |
REST API๋? (0) | 2023.08.27 |