gpt4 book ai didi

javascript - 如何在服务器上检查客户端是否已通过身份验证?

转载 作者:搜寻专家 更新时间:2023-11-01 00:16:57 24 4
gpt4 key购买 nike

情况:

目前,我通过 url 将 UID 传递给服务器。

然后我使用 UID 来检查数据库是否存在该 UID:


代码:

router.get("/profile/:uid", function(req, res, next){

var uid = req.params.uid;

var userRef = admin.database().ref("users/"+uid);

userRef.once('value', function(snapshot){
if (snapshot != null) {

问题:

这意味着任何人都可以通过构建一个 url 并将其粘贴到搜索栏中并包含该用户的 UID 来访问任何人的个人资料。


问题:

如何在不存在此类安全漏洞的情况下检查用户是否已在服务器上进行身份验证?

最佳答案

您需要传递身份验证 token 而不是 uid,在身份验证过程之后,您将从 Firebase 而不是用户那里获得 uid。

使用 Firebase Admin SDK 验证 ID token

网络

firebase.auth().currentUser.getToken(/* forceRefresh */ true).then(function(idToken) {
// Send token to your backend via HTTPS
// ...
}).catch(function(error) {
// Handle error
});

服务器(NodeJs)

// idToken comes from the client app (shown above)

admin.auth().verifyIdToken(idToken)
.then(function(decodedToken) {
var uid = decodedToken.uid;
// here you can use the uid of the user without the fear of Forgery
}).catch(function(error) {
// Handle error
});

来源: https://firebase.google.com/docs/auth/admin/verify-id-tokens

关于javascript - 如何在服务器上检查客户端是否已通过身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41719432/

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