简介
npm是Node.js的包管理器,使用npm可以方便地安装、升级和删除包及其依赖项。now-firebase-admin-auth则是一个使用firebase-admin完成认证的now.js认证服务器中间件。
本文将详细介绍npm包now-firebase-admin-auth的使用教程。
安装
首先,需要安装firebase-admin和now-firebase-admin-auth。
npm install firebase-admin now-firebase-admin-auth
开始使用
引入及配置
在服务端js中,首先需要引入firebase-admin和now-firebase-admin-auth包。
const admin = require('firebase-admin'); const nowFirebaseAdminAuth = require('now-firebase-admin-auth'); admin.initializeApp(/*firebase-admin配置参数*/); // 初始化firebase-adminsdk
在设置now.js服务器时,还要设置auth中间件。
-- -------------------- ---- ------- -------------- - ----- -- - -- -------------------------- ----------------------------------------- ------ ------ ---- -- ----- -- --- -
在这里,admin为firebase-admin的初始化实例。
接口路由设置
设置需要验证的路由地址。
server.get('/auth', async ctx => { const { userUid } = ctx.state.auth; // 获取uid // ... }, { urgent: false });
API保护
使用nowFirebaseAdminAuth.protectAPI(‘/auth/*’)来保护指定路由。此时,如果该路由未授权,则API请求将被拒绝。
示例代码
完整的now.js服务器示例代码如下所示。
-- -------------------- ---- ------- ----- - ------------ - - ---------------- ----- - ----- - - --------------- ----- ---- - ---------------- ----- ----- - -------------------------- ----- -------------------- - ----------------------------------- ----- --- - -------------------- --- ------------- ----- --- - ------ --- --- ----- ------ - ------------------------ ----- ---- - ----- --- ---------- -------- -- - ----- ------ - ------------------ ---- -- - ----- --------- - -------------- ------ ----- - --------- ----- - - ---------- ----------- ---- ----------- --------------- -- -- - -------------- ----- -- --------------------------- --- -- -------------------------- -------------------------------------------- ------ ------ ---- -- ----- -- --- -- --------- -- - ------------------------ ---------------- ---
接下来,使用protectAPI来保护路由。
nowFirebaseAdminAuth.protectAPI('/auth/*');
结论
使用npm包now-firebase-admin-auth,我们可以让我们的now.js认证服务器中间件使用firebase-admin完成认证。
通过以上介绍,相信大家对npm包now-firebase-admin-auth的使用方法有了更深入的了解,在日常开发中将有着很好的指导意义。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671cb30d0927023822808