میتوانید Firebase Authentication را با سیستم اصالتسنجی سفارشی ادغام کنید با اصلاح سرور اصالتسنجیتان برای تولید کردن نشانهای امضاشده سفارشی وقتی کاربر با موفقیت به سیستم وارد میشود. برنامه شما این کد را دریافت میکند و از آن برای اصالتسنجی با Firebase استفاده میکند.
قبل از شروع
- Firebase را به پروژه جاوا اسکریپت خود اضافه کنید.
- دریافت کلیدهای سرور پروژه:
-
در کنسول Firebase، به
تنظیمات > زبانه حسابهای سرویس بروید. - در پایین بخش Firebase Admin SDK، روی تولید کلید خصوصی جدید کلیک کنید.
- جفت کلید عمومی/خصوصی حساب سرویس جدید بهطور خودکار در رایانه شما ذخیره میشود. این فایل را در سرور اصالتسنجی خود کپی کنید.
-
در کنسول Firebase، به
اصالتسنجی با 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 شما ذخیره میشود و میتوان از آن برای شناسایی کاربر در همه برنامههای پروژه شما، صرفنظر از نحوه ورود کاربر به سیستم، استفاده کرد.
-
در برنامههایتان، روش توصیهشده برای اطلاع از وضعیت اصالتسنجی کاربر این است که روی شیء
Authناظر تنظیم کنید. سپس میتوانید اطلاعات نمایه پایه کاربر را از شیءUserدریافت کنید. به مدیریت کاربران مراجعه کنید. در Firebase Realtime Database و Cloud Storage قوانین امنیتی، میتوانید شناسه کاربر یکتای کاربر واردشده به سیستم را از متغیر
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. });