یک کاربر ایجاد کنید
شما با فراخوانی روش createUserWithEmailAndPassword
یا با ورود به سیستم کاربر برای اولین بار با استفاده از یک ارائه دهنده هویت فدرال، مانند Google Sign-In یا Facebook Login ، یک کاربر جدید در پروژه Firebase خود ایجاد می کنید.
همچنین میتوانید از بخش احراز هویت کنسول Firebase ، در صفحه کاربران یا با استفاده از Admin SDK ، کاربران تأیید شده با رمز عبور جدید ایجاد کنید.
کاربر وارد شده فعلی را دریافت کنید
روش پیشنهادی برای بدست آوردن کاربر فعلی با تنظیم یک مشاهدهگر روی شی Auth است:
Web version 9
import { getAuth, onAuthStateChanged } from "firebase/auth"; const auth = getAuth(); onAuthStateChanged(auth, (user) => { if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/auth.user const uid = user.uid; // ... } else { // User is signed out // ... } });
Web version 8
firebase.auth().onAuthStateChanged((user) => { if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/v8/firebase.User var uid = user.uid; // ... } else { // User is signed out // ... } });
با استفاده از مشاهدهگر، وقتی کاربر فعلی را دریافت میکنید، مطمئن میشوید که شی Auth در یک حالت میانی (مانند مقداردهی اولیه) نیست. وقتی از signInWithRedirect
استفاده میکنید، ناظر onAuthStateChanged
منتظر میماند تا getRedirectResult
قبل از راهاندازی برطرف شود.
همچنین می توانید با استفاده از ویژگی currentUser
کاربر وارد شده فعلی را دریافت کنید. اگر کاربری وارد نشده باشد، currentUser
null است:
Web version 9
import { getAuth } from "firebase/auth"; const auth = getAuth(); const user = auth.currentUser; if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/auth.user // ... } else { // No user is signed in. }
Web version 8
const user = firebase.auth().currentUser; if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/v8/firebase.User // ... } else { // No user is signed in. }
پروفایل کاربری را دریافت کنید
برای دریافت اطلاعات نمایه کاربر، از ویژگی های یک نمونه از User
استفاده کنید. مثلا:
Web version 9
import { getAuth } from "firebase/auth"; const auth = getAuth(); const user = auth.currentUser; if (user !== null) { // The user object has basic properties such as display name, email, etc. const displayName = user.displayName; const email = user.email; const photoURL = user.photoURL; const emailVerified = user.emailVerified; // The user's ID, unique to the Firebase project. Do NOT use // this value to authenticate with your backend server, if // you have one. Use User.getToken() instead. const uid = user.uid; }
Web version 8
const user = firebase.auth().currentUser; if (user !== null) { // The user object has basic properties such as display name, email, etc. const displayName = user.displayName; const email = user.email; const photoURL = user.photoURL; const emailVerified = user.emailVerified; // The user's ID, unique to the Firebase project. Do NOT use // this value to authenticate with your backend server, if // you have one. Use User.getIdToken() instead. const uid = user.uid; }
اطلاعات نمایه ارائه دهنده خاص کاربر را دریافت کنید
برای دریافت اطلاعات نمایه بازیابی شده از ارائه دهندگان ورود به سیستم مرتبط با یک کاربر، از ویژگی providerData
استفاده کنید. مثلا:
Web version 9
import { getAuth } from "firebase/auth"; const auth = getAuth(); const user = auth.currentUser; if (user !== null) { user.providerData.forEach((profile) => { console.log("Sign-in provider: " + profile.providerId); console.log(" Provider-specific UID: " + profile.uid); console.log(" Name: " + profile.displayName); console.log(" Email: " + profile.email); console.log(" Photo URL: " + profile.photoURL); }); }
Web version 8
const user = firebase.auth().currentUser; if (user !== null) { user.providerData.forEach((profile) => { console.log("Sign-in provider: " + profile.providerId); console.log(" Provider-specific UID: " + profile.uid); console.log(" Name: " + profile.displayName); console.log(" Email: " + profile.email); console.log(" Photo URL: " + profile.photoURL); }); }
به روز رسانی نمایه یک کاربر
با روش updateProfile
می توانید اطلاعات اولیه نمایه کاربر - نام نمایشی کاربر و URL عکس نمایه کاربر - را به روز کنید. مثلا:
Web version 9
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 // ... });
Web version 8
const user = firebase.auth().currentUser; user.updateProfile({ displayName: "Jane Q. User", photoURL: "https://example.com/jane-q-user/profile.jpg" }).then(() => { // Update successful // ... }).catch((error) => { // An error occurred // ... });
آدرس ایمیل کاربر را تنظیم کنید
می توانید آدرس ایمیل کاربر را با روش updateEmail
کنید. مثلا:
Web version 9
import { getAuth, updateEmail } from "firebase/auth"; const auth = getAuth(); updateEmail(auth.currentUser, "user@example.com").then(() => { // Email updated! // ... }).catch((error) => { // An error occurred // ... });
Web version 8
const user = firebase.auth().currentUser; user.updateEmail("user@example.com").then(() => { // Update successful // ... }).catch((error) => { // An error occurred // ... });
یک ایمیل تأیید برای کاربر ارسال کنید
می توانید با روش sendEmailVerification
یک ایمیل تأیید آدرس برای کاربر ارسال کنید. مثلا:
Web version 9
import { getAuth, sendEmailVerification } from "firebase/auth"; const auth = getAuth(); sendEmailVerification(auth.currentUser) .then(() => { // Email verification sent! // ... });
Web version 8
firebase.auth().currentUser.sendEmailVerification() .then(() => { // Email verification sent! // ... });
میتوانید الگوی ایمیلی را که در بخش احراز هویت کنسول Firebase ، در صفحه الگوهای ایمیل استفاده میشود، سفارشی کنید. به الگوهای ایمیل در مرکز راهنمایی Firebase مراجعه کنید.
همچنین این امکان وجود دارد که وضعیت را از طریق URL ادامه دهید تا هنگام ارسال ایمیل تأیید به برنامه تغییر مسیر دهید.
علاوه بر این، میتوانید با بهروزرسانی کد زبان در نمونه Auth قبل از ارسال ایمیل، ایمیل تأیید را بومیسازی کنید. مثلا:
Web version 9
import { getAuth } from "firebase/auth"; const auth = getAuth(); auth.languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
Web version 8
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
رمز عبور یک کاربر را تنظیم کنید
می توانید رمز عبور کاربر را با روش updatePassword
تعیین کنید. مثلا:
Web version 9
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 // ... });
Web version 8
const user = firebase.auth().currentUser; const newPassword = getASecureRandomPassword(); user.updatePassword(newPassword).then(() => { // Update successful. }).catch((error) => { // An error ocurred // ... });
یک ایمیل بازنشانی رمز عبور ارسال کنید
می توانید با روش sendPasswordResetEmail
یک ایمیل بازنشانی رمز عبور برای کاربر ارسال کنید. مثلا:
Web version 9
import { getAuth, sendPasswordResetEmail } from "firebase/auth"; const auth = getAuth(); sendPasswordResetEmail(auth, email) .then(() => { // Password reset email sent! // .. }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; // .. });
Web version 8
firebase.auth().sendPasswordResetEmail(email) .then(() => { // Password reset email sent! // .. }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // .. });
میتوانید الگوی ایمیلی را که در بخش احراز هویت کنسول Firebase ، در صفحه الگوهای ایمیل استفاده میشود، سفارشی کنید. به الگوهای ایمیل در مرکز راهنمایی Firebase مراجعه کنید.
همچنین این امکان وجود دارد که وضعیت را از طریق URL ادامه دهید تا هنگام ارسال ایمیل بازنشانی رمز عبور به برنامه هدایت شوید.
علاوه بر این، میتوانید ایمیل بازنشانی رمز عبور را با بهروزرسانی کد زبان در نمونه Auth قبل از ارسال ایمیل، بومیسازی کنید. مثلا:
Web version 9
import { getAuth } from "firebase/auth"; const auth = getAuth(); auth.languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
Web version 8
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
همچنین میتوانید ایمیلهای بازنشانی رمز عبور را از کنسول Firebase ارسال کنید.
حذف یک کاربر
شما می توانید یک حساب کاربری را با روش delete
. مثلا:
Web version 9
import { getAuth, deleteUser } from "firebase/auth"; const auth = getAuth(); const user = auth.currentUser; deleteUser(user).then(() => { // User deleted. }).catch((error) => { // An error ocurred // ... });
Web version 8
const user = firebase.auth().currentUser; user.delete().then(() => { // User deleted. }).catch((error) => { // An error ocurred // ... });
همچنین میتوانید کاربران را از بخش احراز هویت کنسول Firebase در صفحه کاربران حذف کنید.
احراز هویت مجدد یک کاربر
برخی از اقدامات حساس امنیتی - مانند حذف یک حساب ، تنظیم یک آدرس ایمیل اصلی و تغییر رمز عبور - مستلزم این است که کاربر اخیراً وارد سیستم شده باشد. اگر یکی از این اقدامات را انجام دهید و کاربر خیلی وقت پیش وارد سیستم شده باشد، عمل با یک خطا شکست می خورد. وقتی این اتفاق میافتد، با دریافت اعتبارنامههای ورود جدید از کاربر و ارسال اعتبار به احراز هویت مجدد reauthenticateWithCredential
، کاربر را دوباره احراز هویت کنید. مثلا:
Web version 9
import { getAuth, reauthenticateWithCredential } from "firebase/auth"; const auth = getAuth(); const user = auth.currentUser; // TODO(you): prompt the user to re-provide their sign-in credentials const credential = promptForCredentials(); reauthenticateWithCredential(user, credential).then(() => { // User re-authenticated. }).catch((error) => { // An error ocurred // ... });
Web version 8
const user = firebase.auth().currentUser; // TODO(you): prompt the user to re-provide their sign-in credentials const credential = promptForCredentials(); user.reauthenticateWithCredential(credential).then(() => { // User re-authenticated. }).catch((error) => { // An error occurred // ... });
وارد کردن حساب های کاربری
با استفاده از auth:import
در Firebase CLI میتوانید حسابهای کاربری را از یک فایل به پروژه Firebase وارد کنید. مثلا:
firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14