شما میتوانید Firebase Authentication با یک سیستم احراز هویت سفارشی ادغام کنید، به این صورت که سرور احراز هویت خود را طوری تغییر دهید که وقتی کاربر با موفقیت وارد سیستم میشود، توکنهای امضا شده سفارشی تولید کند. برنامه شما این توکن را دریافت کرده و از آن برای احراز هویت با فایربیس استفاده میکند.
قبل از اینکه شروع کنی
- فایربیس را به پروژه جاوا اسکریپت خود اضافه کنید .
- کلیدهای سرور پروژه خود را دریافت کنید:
- در کنسول Firebase ، به مسیر زیر بروید:
> برگه حسابهای سرویس . - در پایین بخش Firebase Admin SDK ، روی «ایجاد کلید خصوصی جدید» کلیک کنید.
- جفت کلید عمومی/خصوصی حساب سرویس جدید به طور خودکار در رایانه شما ذخیره میشود. این فایل را در سرور احراز هویت خود کپی کنید.
- در کنسول Firebase ، به مسیر زیر بروید:
احراز هویت با فایربیس
- وقتی کاربران وارد برنامه شما میشوند، اطلاعات ورود آنها (مثلاً نام کاربری و رمز عبور) را به سرور احراز هویت شما ارسال میکنند. سرور شما اطلاعات را بررسی میکند و در صورت معتبر بودن، یک توکن سفارشی برمیگرداند.
- پس از دریافت توکن سفارشی از سرور احراز هویت خود، آن را به
signInWithCustomTokenارسال کنید تا کاربر وارد سیستم شود:Web
import { getAuth, signInWithCustomToken } from "firebase/auth"; const auth = getAuth(); signInWithCustomToken(auth, token) .then((userCredential) => { // Signed in const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; // ... });
Web
firebase.auth().signInWithCustomToken(token) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // ... });
مراحل بعدی
پس از اینکه کاربر برای اولین بار وارد سیستم میشود، یک حساب کاربری جدید ایجاد میشود و به اطلاعات احراز هویت - یعنی نام کاربری و رمز عبور، شماره تلفن یا اطلاعات ارائه دهنده مجوز - که کاربر با آن وارد سیستم شده است، پیوند داده میشود. این حساب جدید به عنوان بخشی از پروژه Firebase شما ذخیره میشود و میتواند برای شناسایی کاربر در هر برنامه در پروژه شما، صرف نظر از نحوه ورود کاربر، مورد استفاده قرار گیرد.
در برنامههای شما، روش پیشنهادی برای اطلاع از وضعیت احراز هویت کاربر، تنظیم یک ناظر (observer) روی شیء
Authاست. سپس میتوانید اطلاعات اولیه پروفایل کاربر را از شیءUserدریافت کنید. به بخش مدیریت کاربران (Manage Users) مراجعه کنید.در قوانین امنیتی پایگاه داده و Cloud Storage Firebase Realtime Database ، میتوانید شناسه کاربری منحصر به فرد کاربر وارد شده را از متغیر
authدریافت کنید و از آن برای کنترل دادههایی که کاربر میتواند به آنها دسترسی داشته باشد، استفاده کنید.
برای خروج کاربر، signOut را فراخوانی کنید:
Web
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });