当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在服务器上检查客户端是否经过身份验证?》经验,为你挑选了1个好方法。

情况:

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

然后,我使用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) {

问题:

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


题:

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



1> Yossi Neiman..:

您需要传递身份验证令牌而不是uid.在身份验证过程之后,您将从Firebase获取uid,而不是从用户获取.

使用Firebase管理SDK验证ID令牌

卷筒纸

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

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有