gpt4 book ai didi

node.js - Firebase 自定义登录期间在何处存储 key

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:53 25 4
gpt4 key购买 nike

我正在将 Node.JS 与 Firebase 结合起来,并计划使用 LinkedIn 来登录用户。

在后端我有:

var FirebaseTokenGenerator = require("firebase-token-generator");
var mySecret = 'XXXXX'


module.exports = function (app, passport) {

app.get('/fire', function (req, res) {
var tokenGenerator = new FirebaseTokenGenerator(mySecret);
var token = tokenGenerator.createToken({
"app_user_id": 123X, "isModerator": true
});

res.render('firebase-index.ejs', {token: token, kale: 'mazing'}); })
};

在模板 firebase-index.ejs 上:

这里我不确定如何存储身份验证期间使用的 token 。我似乎无法直接使用它,除非我将它插入到像这样的 DOM 元素中

<span id="token"><%= token %><span>

然后我可以使用下面的“token.textContent”访问它

dataRef.auth(token.textContent, function(error) {
if(error) {
console.log("Login Failed!", error);
} else {
console.log("Login Succeeded!");
console.log(token.textContent);
}
});

这是安全/首选的方法吗?另外,登录后,如何访问 auth 变量?谢谢

最佳答案

大多数情况下,在现代应用程序中,您会向服务器 API 请求身份验证 token ,而不是将身份验证 token 作为 HTML 正文的一部分发送。这是通过对后端进行 HTTP 调用来完成的,该调用将返回一个 JSON 对象(即异步请求)。

服务器代码(假设是express):

var FirebaseTokenGenerator = require("firebase-token-generator");
var tokenGenerator = new FirebaseTokenGenerator(process.env.FIREBASE_SECRET);

app.get('/authToken', function(req, res){
var token = tokenGenerator.createToken({some: "arbitrary", data: "here"});
res.json(token);
});

客户端代码(假设 jQuery):

$.getJSON( "https://SERVER/authToken", function( token ) {
console.log(token);
});

如果您坚持将其作为 view/html 数据的一部分返回,您可以将其直接注入(inject) JavaScript 变量中(因为您正在生成它并且知道它不包含任何恶意代码)。

在这里,我将只使用窗口(即全局),但您更喜欢有一些范围对象(例如 myApp.config.authToken),您可以将其附加到其中。

<script>window.authToken = '<%= token %>';<script>

关于node.js - Firebase 自定义登录期间在何处存储 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22622558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com