使用 JWT 进行身份验证,返回带有 GET 请求的空数组 [NodeJS]

春色

尝试使用 NodeJS 练习 JWT,但是当我尝试使用 Authorization: Bearer 的标头运行 GET 请求时,它返回一个数组而不是带有令牌的对象,我尝试使用 Postman 应用程序但无济于事

这是代码,获取和发布请求代码:

    const express = require('express');
require('dotenv').config();
const jwt = require('jsonwebtoken');
const crypto = require('crypto');
const app = express();

const user = [
    {
        username: 'John',
        email: '[email protected]'
    }, 
    {
        username: "Joshua",
        email: '[email protected]'
    }
]

app.use(express.json())

app.get('/api', authenicateToken, (req, res,) => {
    res.json(user.filter(post => post.username === req.body.name))
})

app.post('/login', (req, res) => {
    const username = req.body.username
    const use = { name: username }

    const accessToken = jwt.sign(use, process.env.ACCESS_KEY)
    res.json({ accessToken: accessToken })
})

function authenicateToken (req, res, next) {
    const authHeader = req.headers['authorization']
    const token = authHeader && authHeader.split(' ')[1]
    if(token === null) return res.sendStatus(403)

    jwt.verify(token, process.env.ACCESS_KEY, (err, user) => {
        if(err) return res.sendStatus(403)
        req.user = user
        next()
    })
}

app.listen(4000, () => {
    console.log('Can you hear me?');
})

在此处输入图像描述

穆罕默德·米尔加尼

filter返回一个数组,使用find它返回单个项目的方法。

res.json(user.find(post => post.username === req.body.name))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用JWT实施身份验证端点

使用restTemplate发送带有身份验证标头的GET请求

使用Spring和JWT进行基于令牌的身份验证

使用JWT进行GraphQL Golang身份验证

使用Symfony 2.7进行JWT身份验证

在NodeJS后端中将JWT与Active Directory身份验证一起使用

使用JWT Laravel 5进行身份验证,无需密码

使用gundb进行JWT身份验证

如何使用JWT和Passport正确使用对nodeJs API的身份验证?

使用NodeJS进行Firebase身份验证

使用AXIOS进行JWT身份验证

使用Deno进行JWT身份验证

使用Spring Boot进行JWT身份验证和授权

使用JWT创建PostMan GET请求

带Twitch身份验证的带有请求承诺的NodeJS发布请求

使用Django REST框架进行JWT身份验证

在NodeJS中使用JWT进行身份验证

使用JWT对字段进行身份验证的GraqhQL问题

用于Web应用程序JWT的Nodejs Express与数据库或会话进行身份验证

如何在带有supertest,passport和JEST的cookie中使用jwt测试身份验证

使用Java HttpClient发送带有443个用户ID密码提示身份验证的GET请求

带有身份验证的GET请求

在Owin上使用JWT与RSA进行身份验证

使用 jwt 对 Api 进行 Angular5 身份验证

Auth0 - 在 Owin 上使用带有承载访问令牌的 JWT 使用 RS256 进行身份验证

Open Distro Elasticsearch - 使用 JWT 对 Kibana 进行身份验证

使用 JWT 身份验证对 DRF 的 axios 请求失败

使用 React/Node 进行 JWT 身份验证

使用带有护照 js 服务器的 python 请求进行身份验证