首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于使用火基和反应js的说明

关于使用火基和反应js的说明
EN

Stack Overflow用户
提问于 2022-07-03 08:31:14
回答 1查看 50关注 0票数 0

所以最近我正在做一个react js项目,在我开始搜索所有东西之前,我发现使用firebasereact的最佳方式是通过express,一切都很好,直到有人告诉我我使用错了,他解释说有一个firebase auth (我正在使用)和firebase admin sdk,第一个必须在客户端使用,第二个必须在服务器端使用。

基本上,我使用Axios将数据发送到express,然后运行我的firebase Authentication,然后响应我的客户端,这是错误的吗?下面是一个检查用户是否已登录的示例:

Server.js

代码语言:javascript
运行
复制
const firebaseDb=require("firebase/database");
const firebaseAuth=require("firebase/auth");
const path = require('path');
const express= require("express");
var cors = require('cors');
const bodyParser = require("body-parser");

const app=express();

app.use(express.json());
app.use(cors());
app.use(bodyParser.urlencoded({extended: true}));

const db=firebaseDb.getDatabase();
const auth=firebaseAuth.getAuth();
app.get('/checkAuth',(req, res)=>{  

const user=auth.currentUser;
  if (user) {
    // User is signed in.      
    return res.status(200).send("auth ok");

  } else {
    // User is signed out
    return res.status(404).send("auth error");
  }

});

这个有用吗?还是应该直接在客户端实现防火墙?还是应该在我的服务器上使用?

在我的客户端使用防火墙会使我的应用程序变得脆弱吗??即使在看了几个小时的文件之后,我也很感激任何帮助我感到失落。

EN

回答 1

Stack Overflow用户

发布于 2022-07-03 09:20:06

在我的项目中集成firebase auth时使用的流程如下

  • I在前端进行身份验证,并将Firebase提供的令牌传递给授权头

中的服务器

服务器端的

  • ,我使用Firebase Admin来验证令牌。

serviceAccount = admin.initializeApp({凭证: admin.credential.cert(serviceAccount),});函数firebaseTokenVerification(req,res,next) { const authHeader =req.headers“授权”;const令牌= authHeader & authHeader.split(“")1;管理.auth() .verifyIdToken(令牌).then((响应) => { //标头中提供的令牌是有效的,如果它到达然后块next();}) .catch((e) => { //令牌无效)。返回res .status(403) .send(‘无效令牌’);};}

上面的代码被用作前端提供的firebase令牌的快速中间件,一旦经过验证,我确信前端提供的令牌是有效的,并且可以处理请求。

在前端,我使用firebase/auth库,在后端,我使用Firebase Admin

希望这能回答你的疑问。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72844990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档