authentication - 使用 Firebase 进行服务器端身份验证

标签 authentication firebase jwt firebase-authentication server-side

我在客户端设置了 Firebase 身份验证,在服务器端我可以获取 JWT token 并解码帐户 ID。但是,当我希望在生成页面之前在服务器上对每个页面加载进行身份验证时,这是如何工作的?

在登录或每个页面加载时,我是否可以简单地将最后一个 JWT token 存储到 cookie 中,以便我可以在我的服务器上读取它们?除此之外,除了每个链接都是 AJAX 调用之外,我不知道我的服务器还能如何获取该信息。

最佳答案

假设您使用 firebase auth 库来解码和验证服务器上的 token ,而不是某种 JWT 解析库,这似乎是唯一的方法。

Firebase 管理员包括用于解码和验证 id token 以及推断所有信息的方法。这可以防止 cookie 伪造,并将 firebase 身份验证作为您是否通过身份验证的唯一真实来源。

例如(在节点中):

    const admin = require("firebase-admin");
    admin.initalizeApp({
        credential: admin.credential.cert(yourServiceAccountJsonHere),
        databaseURL: "http://YOURDATABASE.firebaseio.com/"
    });
    admin.verifyIdToken("usertokenasastring") //returns a promise
        .then(function(decodedToken){
            //process the decoded user token somehow
    });

Firebase 调用您的数据库,并确保该用户已登录并且 JWT 中的所有其他信息都有意义,因此您不必担心实现任何类型的验证服务器端。

关于authentication - 使用 Firebase 进行服务器端身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41530665/

相关文章:

facebook - Firebase signInWithCredential 失败 : First argument "credential" must be a valid credential

java - 使用 Feign 客户端添加授权 token

c# - ASP.NET Web Api 身份验证方法

firebase - 在 Firebase 控制台中按数组或映射字段值查询 Firestore 文档

mysql - 如何检查mysql中是否设置了用户密码?

ios - 将文档的文档 ID 添加到它自己的 Firestore 文档中 - Swift 4

authentication - ASP.NET Core 3.1 - AddJwtBearer、OnTokenValidated 事件在失败时不考虑自定义消息

asp.net-mvc - 使用 JWT 实现的最小 WebAPI2 + OAuth : 401 always returned

node.js - 使用 Node.js 连接到 PHP 网站并保持 session

python - 如何在 Python 中从 Mechanize 获取当前 URL?