【问题标题】:How do I pass authentication tokens/headers?如何传递身份验证令牌/标头?
【发布时间】:2021-08-17 09:28:08
【问题描述】:

我设计了一个身份验证功能,在通过我的 POSTMAN 端点测试时可以完美运行。这是 Authorization 值正确时的样子:

这就是我更改 Authorization 值以故意使授权过程失败时的样子:

在授权码下方查找:

const jwt = require ('jsonwebtoken');
const authenticate = (req, res, next)=>{
    try {
        const token = req.headers.authorization.split(' ')[1]
        const decode = jwt.verify(token, 'verySecretValue')
        console.log('Authentication PASSED!');
        next();
        
    }
    catch (error) {
        
        res.json({
            message: 'Authentication FAILED!'       
        })
        
    }
}

module.exports = authenticate

然后,现在在下面找到我用来渲染的代码:

.
.
.
const authenticate = require('./authentication/authenticate.js');
.
.
.
.

app.get('/list', authenticate, async (req,res)=> {

    let countyResult = await county();
    let transId = await transactionId();
    
    transModel.find({transIndustry: 'Pharmacy'}, (err, docs)=> {
    if (!err) 
        {
            res.render('list',  {data : docs, countyName: countyResult, transId: transId}); 
        }
    else
        {
//          res.status(status).send(body);      
        }
            
    })
});

但是,当我尝试通过浏览器访问上面的端点/链接/地址时,我收到以下错误消息:

{"message":"Authentication FAILED!"}

我觉得这是一个授权值问题,我不太清楚在通过res.render('list', {data : docs, countyName: countyResult, transId: transId}); 呈现list 页面时应该如何传递这个值。

期待您的帮助。

【问题讨论】:

  • 是否在catch 块的authenticate 中间件中使用res.render 选项?

标签: node.js express jwt


【解决方案1】:

您可以通过打开开发工具并转到网络选项卡来检查浏览器发出的请求。在那里,您可以检查是否通过了正确的标头。

前端是否有任何代码可以在标头中传递令牌?

如果这不是一个选项,您可以探索在 cookie 中设置令牌。这样,您就可以确定对后端的每个请求都会包含它。

【讨论】:

  • 我检查了是否在开发工具中传递了任何标头,但似乎看不到任何标头。我没有任何前端代码来传递标头中的令牌。我是新手,请问一个是什么样的?
  • 我检查了是否在开发工具中传递了任何标头,但似乎看不到任何标头。我没有任何前端代码来传递标头中的令牌。我是新手,请问一个是什么样的?
  • 对,所以在这种情况下,浏览器无法知道在向 /list 端点发出 GET 请求时,它需要设置带有令牌的标头。在这种情况下,您有 2 个选项来验证您的用户:会话或 cookie。看看快递website 上的例子。第一个是关于 auth 并使用会话
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-06
  • 2019-05-10
  • 2021-04-13
  • 2016-01-30
  • 2018-11-20
相关资源
最近更新 更多