یک کاربر ایجاد کنید
شما با فراخوانی متد createUserWithEmailAndPassword
یا با ورود به سیستم کاربر برای اولین بار با استفاده از ارائه دهنده هویت فدرال، مانند Google Sign-In یا Facebook Login ، یک کاربر جدید در پروژه Firebase خود ایجاد می کنید.
همچنین میتوانید از بخش احراز هویت کنسول Firebase ، در صفحه کاربران یا با استفاده از Admin SDK، کاربران تأیید شده با رمز عبور جدید ایجاد کنید.
کاربر وارد شده فعلی را دریافت کنید
روش پیشنهادی برای بدست آوردن کاربر فعلی با تنظیم یک مشاهدهگر روی شی Auth است:
Web
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
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
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
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
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
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
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
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
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
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
import { getAuth, updateEmail } from "firebase/auth"; const auth = getAuth(); updateEmail(auth.currentUser, "user@example.com").then(() => { // Email updated! // ... }).catch((error) => { // An error occurred // ... });
Web
const user = firebase.auth().currentUser; user.updateEmail("user@example.com").then(() => { // Update successful // ... }).catch((error) => { // An error occurred // ... });
یک ایمیل تأیید برای کاربر ارسال کنید
می توانید با روش sendEmailVerification
یک ایمیل تأیید آدرس برای کاربر ارسال کنید. به عنوان مثال:
Web
import { getAuth, sendEmailVerification } from "firebase/auth"; const auth = getAuth(); sendEmailVerification(auth.currentUser) .then(() => { // Email verification sent! // ... });
Web
firebase.auth().currentUser.sendEmailVerification() .then(() => { // Email verification sent! // ... });
میتوانید الگوی ایمیلی را که در بخش احراز هویت کنسول Firebase ، در صفحه الگوهای ایمیل استفاده میشود، سفارشی کنید. به الگوهای ایمیل در مرکز راهنمایی Firebase مراجعه کنید.
همچنین این امکان وجود دارد که وضعیت را از طریق URL ادامه دهید تا هنگام ارسال ایمیل تأیید به برنامه تغییر مسیر دهید.
علاوه بر این، میتوانید با بهروزرسانی کد زبان در نمونه Auth قبل از ارسال ایمیل، ایمیل تأیید را بومیسازی کنید. به عنوان مثال:
Web
import { getAuth } from "firebase/auth"; const auth = getAuth(); auth.languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // auth.useDeviceLanguage();
Web
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
رمز عبور یک کاربر را تنظیم کنید
می توانید رمز عبور کاربر را با روش updatePassword
تعیین کنید. به عنوان مثال:
Web
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
const user = firebase.auth().currentUser; const newPassword = getASecureRandomPassword(); user.updatePassword(newPassword).then(() => { // Update successful. }).catch((error) => { // An error ocurred // ... });
یک ایمیل بازنشانی رمز عبور ارسال کنید
می توانید با روش sendPasswordResetEmail
یک ایمیل بازنشانی رمز عبور برای کاربر ارسال کنید. به عنوان مثال:
Web
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
firebase.auth().sendPasswordResetEmail(email) .then(() => { // Password reset email sent! // .. }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // .. });
میتوانید الگوی ایمیلی را که در بخش احراز هویت کنسول Firebase ، در صفحه الگوهای ایمیل استفاده میشود، سفارشی کنید. به الگوهای ایمیل در مرکز راهنمایی Firebase مراجعه کنید.
همچنین این امکان وجود دارد که وضعیت را از طریق URL ادامه دهید تا هنگام ارسال ایمیل بازنشانی رمز عبور به برنامه هدایت شوید.
علاوه بر این، میتوانید با بهروزرسانی کد زبان در نمونه Auth قبل از ارسال ایمیل، ایمیل بازنشانی رمز عبور را بومیسازی کنید. به عنوان مثال:
Web
import { getAuth } from "firebase/auth"; const auth = getAuth(); auth.languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // auth.useDeviceLanguage();
Web
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
همچنین میتوانید ایمیلهای بازنشانی رمز عبور را از کنسول Firebase ارسال کنید.
حذف یک کاربر
شما می توانید یک حساب کاربری را با روش delete
حذف کنید. به عنوان مثال:
Web
import { getAuth, deleteUser } from "firebase/auth"; const auth = getAuth(); const user = auth.currentUser; deleteUser(user).then(() => { // User deleted. }).catch((error) => { // An error ocurred // ... });
Web
const user = firebase.auth().currentUser; user.delete().then(() => { // User deleted. }).catch((error) => { // An error ocurred // ... });
همچنین میتوانید کاربران را از بخش تأیید هویت کنسول Firebase در صفحه کاربران حذف کنید.
احراز هویت مجدد یک کاربر
برخی از اقدامات حساس امنیتی - مانند حذف یک حساب ، تنظیم یک آدرس ایمیل اصلی و تغییر رمز عبور - مستلزم این است که کاربر اخیراً وارد سیستم شده باشد. اگر یکی از این اقدامات را انجام دهید و کاربر خیلی وقت پیش وارد سیستم شده باشد، عمل با یک خطا شکست می خورد. وقتی این اتفاق میافتد، با دریافت اعتبارنامههای ورود جدید از کاربر و ارسال اعتبار به reauthenticateWithCredential
کاربر را دوباره احراز هویت کنید. به عنوان مثال:
Web
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
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