شما میتوانید Firebase Authentication برای ایجاد و استفاده از حسابهای کاربری ناشناس موقت برای احراز هویت با Firebase استفاده کنید. این حسابهای کاربری ناشناس موقت میتوانند برای کاربرانی که هنوز در برنامه شما ثبت نام نکردهاند، جهت کار با دادههای محافظت شده توسط قوانین امنیتی استفاده شوند. اگر یک کاربر ناشناس تصمیم به ثبت نام در برنامه شما بگیرد، میتوانید اطلاعات ورود او را به حساب کاربری ناشناس پیوند دهید تا بتواند در جلسات آینده با دادههای محافظت شده خود به کار خود ادامه دهد.
قبل از اینکه شروع کنی
- فایربیس را به پروژه جاوا اسکریپت خود اضافه کنید .
- اگر هنوز برنامه خود را به پروژه Firebase خود متصل نکردهاید، این کار را از کنسول Firebase انجام دهید.
- فعال کردن احراز هویت ناشناس:
- در کنسول Firebase ، بخش Auth را باز کنید.
- در صفحه روشهای ورود ، روش ورود ناشناس را فعال کنید.
- اختیاری : اگر پروژه خود را به Firebase Authentication with Identity Platform ارتقا دادهاید، میتوانید پاکسازی خودکار را فعال کنید. وقتی این تنظیم را فعال میکنید، حسابهای ناشناس قدیمیتر از 30 روز به طور خودکار حذف میشوند. در پروژههایی که پاکسازی خودکار فعال است، احراز هویت ناشناس دیگر در محدودیتهای استفاده یا سهمیههای صورتحساب محاسبه نمیشود. به پاکسازی خودکار مراجعه کنید.
احراز هویت با فایربیس به صورت ناشناس
وقتی کاربری که از سیستم خارج شده و از آن خارج شده است از یک ویژگی برنامه که نیاز به احراز هویت با Firebase دارد استفاده میکند، با انجام مراحل زیر، کاربر را به صورت ناشناس وارد سیستم کنید:
- متد
signInAnonymouslyرا فراخوانی کنید:همچنین اینجا جایی است که میتوانید خطاها را دریافت و مدیریت کنید. برای مشاهدهی فهرستی از کدهای خطا، به مستندات مرجع احراز هویت (Auth Reference Docs) مراجعه کنید.Web
import { getAuth, signInAnonymously } from "firebase/auth"; const auth = getAuth(); signInAnonymously(auth) .then(() => { // Signed in.. }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; // ... });
Web
firebase.auth().signInAnonymously() .then(() => { // Signed in.. }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // ... });
- اگر متد
signInAnonymouslyبدون خطا اجرا شود، ناظر ثبتشده درonAuthStateChangedفعال میشود و میتوانید دادههای حساب کاربر ناشناس را از شیءUserدریافت کنید: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.signInWithتکمیل کنید، اما این شامل فراخوانی این متدها نمیشود. برای مثال، توکن شناسهی گوگل، توکن دسترسی فیسبوک یا آدرس ایمیل و رمز عبور کاربر را دریافت کنید. برای ارائه دهنده احراز هویت جدید، یک
AuthCredentialدریافت کنید:ورود به سیستم گوگل
Web
import { GoogleAuthProvider } from "firebase/auth"; const credential = GoogleAuthProvider.credential( googleUser.getAuthResponse().id_token);
Web
var credential = firebase.auth.GoogleAuthProvider.credential( googleUser.getAuthResponse().id_token);
ورود به فیسبوک
Web
import { FacebookAuthProvider } from "firebase/auth"; const credential = FacebookAuthProvider.credential( response.authResponse.accessToken);
Web
var credential = firebase.auth.FacebookAuthProvider.credential( response.authResponse.accessToken);
ورود با ایمیل و رمز عبور
Web
import { EmailAuthProvider } from "firebase/auth"; const credential = EmailAuthProvider.credential(email, password);
Web
var credential = firebase.auth.EmailAuthProvider.credential(email, password);
شیء
AuthCredentialرا به متدlinkکاربر در حال ورود ارسال کنید:Web
import { getAuth, linkWithCredential } from "firebase/auth"; const auth = getAuth(); linkWithCredential(auth.currentUser, credential) .then((usercred) => { const user = usercred.user; console.log("Anonymous account successfully upgraded", user); }).catch((error) => { console.log("Error upgrading anonymous account", error); });
Web
auth.currentUser.linkWithCredential(credential) .then((usercred) => { var user = usercred.user; console.log("Anonymous account successfully upgraded", user); }).catch((error) => { console.log("Error upgrading anonymous account", error); });
اگر فراخوانی link موفقیتآمیز باشد، حساب کاربری جدید کاربر میتواند به دادههای فایربیس حساب کاربری ناشناس دسترسی پیدا کند.
تمیز کردن خودکار
اگر پروژه خود را به Firebase Authentication with Identity Platform ارتقا دادهاید، میتوانید پاکسازی خودکار را در کنسول Firebase فعال کنید. وقتی این ویژگی را فعال میکنید، به Firebase اجازه میدهید حسابهای ناشناس قدیمیتر از 30 روز را به طور خودکار حذف کند. در پروژههایی که پاکسازی خودکار فعال است، احراز هویت ناشناس در محدودیتهای استفاده یا سهمیههای صورتحساب محاسبه نمیشود.
- هر حساب کاربری ناشناسی که پس از فعال کردن پاکسازی خودکار ایجاد شود، ممکن است هر زمان پس از 30 روز پس از ایجاد، به طور خودکار حذف شود.
- حسابهای کاربری ناشناس موجود، ۳۰ روز پس از فعال کردن قابلیت پاکسازی خودکار، واجد شرایط حذف خودکار خواهند بود.
- اگر پاکسازی خودکار را خاموش کنید، هر حساب ناشناسی که برای حذف برنامهریزی شده باشد، همچنان در برنامه حذف باقی خواهد ماند.
- اگر یک حساب کاربری ناشناس را با پیوند دادن آن به هر روش ورود به سیستم «ارتقاء» دهید، حساب به طور خودکار حذف نمیشود.
اگر میخواهید قبل از فعال کردن این ویژگی، ببینید چند کاربر تحت تأثیر قرار میگیرند، و پروژه خود را به Firebase Authentication with Identity Platform ارتقا دادهاید، میتوانید در Cloud Logging بر اساس is_anon فیلتر کنید.
مراحل بعدی
اکنون که کاربران میتوانند با Firebase احراز هویت شوند، میتوانید دسترسی آنها به دادههای موجود در پایگاه داده Firebase خود را با استفاده از قوانین Firebase کنترل کنید.