在前端开发中,Firebase 是一个不可或缺的工具,它提供了丰富的后端服务,包括实时数据库、云存储、身份验证和云函数等等。而 @weegigs/firebase-express-authenticator 这个 npm 包则是为了在 Express 服务器上实现 Firebase 身份验证而开发的。
本文将介绍如何使用 @weegigs/firebase-express-authenticator 这个 npm 包在 Express 服务器上实现 Firebase 身份验证,并提供了详细的使用教程和示例代码。
安装
使用 npm 安装 @weegigs/firebase-express-authenticator 这个包:
npm install @weegigs/firebase-express-authenticator
配置 Firebase 项目
在使用 @weegigs/firebase-express-authenticator 这个包之前,我们需要先在 Firebase 控制台中创建一个项目,并启用身份验证功能。
首先,在 Firebase 控制台中创建一个新项目,将其命名为示例项目。然后,在此项目的设置中,找到“Project ID”并将其值复制到一个安全地存储的位置(将在下面的步骤中使用此 ID)。
接下来,在“Authentication”部分中,启用“通过电子邮件/密码”选项。这将允许我们在本地调试期间使用电子邮件和密码身份验证。最后,在 Firebase 控制台的“服务帐户”部分中,生成一个 JSON 服务帐户密钥文件。
配置 Express 服务器
在 Express 服务器上使用 @weegigs/firebase-express-authenticator 包需要先进行一些配置。首先,我们需要使用 require
指令将包包含到服务器文件中:
const express = require('express') const firebaseAuth = require('@weegigs/firebase-express-authenticator')
接下来,我们需要预先配置 Firebase 应用程序。为此,我们需要读取在 Firebase 控制台中生成的 JSON 服务帐户密钥文件,并使用它创建一个新的 Firebase 应用程序。
const admin = require('firebase-admin') const serviceAccount = require('./path/to/serviceAccountKey.json') const firebaseApp = admin.initializeApp({ credential: admin.credential.cert(serviceAccount), })
接下来,我们将使用 express
创建一个服务器并将其配置为使用 @weegigs/firebase-express-authenticator 身份验证中间件。
-- -------------------- ---- ------- ----- --- - --------- -- ----- ---------------------- ------------ ------------ ---------------------- ------------------------------------------------------------------- --- ---------------- -- -- - ------------------- ------- -- ----------------------- --
在这里,我们将 firebaseAuth
中间件添加到 Express 应用程序中。配置方法 firebaseApp
用于指定先前定义的 Firebase 应用程序,allowedIdTokenIssuers
用于指定安全令牌的颁发者。由于身份验证规则在 Firebase 控制台中进行配置,因此必须确保 allowedIdTokenIssuers
与控制台中指定的配置匹配。
在路由中使用身份验证
现在我们已经成功设置了 @weegigs/firebase-express-authenticator 身份验证中间件,接下来让我们在 Express 应用程序中创建一个路由,并使用这个包实现身份验证。
app.get('/protected-route', (req, res) => { res.send('You\'re authenticated!') })
现在,我们需要向这个路由添加身份验证中间件。通过这种方式,只有经过身份验证的用户才能访问该路由,否则将被重定向到一个默认的登录页面。
-- -------------------- ---- ------- ----- ----------- - -------------- ------------ ------------ ---------------------- -------------------------------------------------------------------- ------------ ------------- -- --------------------------- ------------ ----- ---- -- - ----------------- ---------------- --
在此示例中,我们创建了名为 requireAuth
的身份验证中间件,并将其添加到 /protected-route
路由中。如果用户未经身份验证就访问此路由,则该中间件将重定向到 /login-page
URL。
现在让我们创建一个完整的示例,以演示如何实现这些步骤。
示例代码
-- -------------------- ---- ------- -- -- --------- --- -------------------------------- -- ----- ------- - ------------------ ----- ------------ - -------------------------------------------------- -- -- ---------------- ----- ---- ------ ----- ----- - ------------------------- ----- -------------- - ----------------------------------- -- - -------- ----------- ----- ----------- - --------------------- ----------- -------------------------------------- ------------ ----------------------------------------------- -- -- ------ ------------- -------- ----- ----------- - -------------- ------------ ------------ ---------------------- -------------------------------------------------------------------- ------------ ------------- -- -- ---- ------- ---- ----- --- - --------- -- --------- -------------------- -- -------- --------------------------- ----- ---- -- - ----------------- ---------------- -- -- ----- ---------------- -- -- - ------------------- ------- -- ----------------------- --
结论
@weegigs/firebase-express-authenticator 这个 npm 包是一个强大而易于使用的工具,用于在 Express 服务器上实现 Firebase 身份验证。通过本教程,我们学习了如何使用它来实现基本的身份验证,并提供了一个示例代码来帮助您入门。无论您是一名前端开发者,还是一名初学者,我们相信这个教程都会对您有所帮助,并为您在以后的项目中提供指导。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671a730d09270238225d4