最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何保护JWT令牌并在nodejsangular中刷新令牌

IT培训 admin 3浏览 0评论

如何保护JWT令牌并在nodejs / angular中刷新令牌

我是节点js的新手。我正在构建一个简单的笔记记录应用程序,并希望使用JWT令牌进行身份验证并保护我的API。在研究中,我知道我需要创建两个令牌:

  1. 访问令牌(较短的到期时间,例如10分钟)
  2. 刷新令牌(最长到期时间为30天)

访问令牌可以保存在本地存储中。但将刷新令牌另存为纯HTTP Cookie。我需要以下几点的答案(请记住,我只是一个初学者):

  1. 如何将刷新令牌存储为仅HTTP cookie(任何node-js代码示例将有很大的帮助)?
  2. 如何在客户端保护它,我应该将刷新令牌保存到数据库吗?
  3. 还有其他更好的解决方案来保护我的API吗?
回答如下:

请参阅本示例,我如何在nodjs中保护我的getByRefId api:

在路由文件中:

router.get(“ / refId /:refId”,helper.auth,groupController.getByRefId);

helper.auth是函数:

auth:(要求,要求,下一个)=> {var令牌= req.body.token || req.headers ['authorization'] || req.headers [ '授权'];

    if (token.startsWith('Bearer ')) {
        // Remove Bearer from string
        token = token.slice(7, token.length).trimLeft();
    }

    if (token) {
        jwt.verify(token, 'MY_SECRET', function (err, decoded) {
            if (err) {
                console.error('JWT Verification Error', err);
                return res.status(403).send(err);
            } else {
                req.payload = decoded;
                return next();
            }
        });
    } else {
        res.status(403).send('Token not provided');
    }
}

此用法jwt = require('jsonwebtoken')库,您可以将其安装在nodejs项目中

如何保护JWT令牌并在nodejs / angular中刷新令牌

我是节点js的新手。我正在构建一个简单的笔记记录应用程序,并希望使用JWT令牌进行身份验证并保护我的API。在研究中,我知道我需要创建两个令牌:

  1. 访问令牌(较短的到期时间,例如10分钟)
  2. 刷新令牌(最长到期时间为30天)

访问令牌可以保存在本地存储中。但将刷新令牌另存为纯HTTP Cookie。我需要以下几点的答案(请记住,我只是一个初学者):

  1. 如何将刷新令牌存储为仅HTTP cookie(任何node-js代码示例将有很大的帮助)?
  2. 如何在客户端保护它,我应该将刷新令牌保存到数据库吗?
  3. 还有其他更好的解决方案来保护我的API吗?
回答如下:

请参阅本示例,我如何在nodjs中保护我的getByRefId api:

在路由文件中:

router.get(“ / refId /:refId”,helper.auth,groupController.getByRefId);

helper.auth是函数:

auth:(要求,要求,下一个)=> {var令牌= req.body.token || req.headers ['authorization'] || req.headers [ '授权'];

    if (token.startsWith('Bearer ')) {
        // Remove Bearer from string
        token = token.slice(7, token.length).trimLeft();
    }

    if (token) {
        jwt.verify(token, 'MY_SECRET', function (err, decoded) {
            if (err) {
                console.error('JWT Verification Error', err);
                return res.status(403).send(err);
            } else {
                req.payload = decoded;
                return next();
            }
        });
    } else {
        res.status(403).send('Token not provided');
    }
}

此用法jwt = require('jsonwebtoken')库,您可以将其安装在nodejs项目中

发布评论

评论列表 (0)

  1. 暂无评论