如何添加JWT令牌身份验证以保护路由

坦泽尔

我添加了所需的代码,但仍然得到:

无法获取/ api / login

我正在Postman以及直接在浏览器上对此进行测试。但是,我仍然没有完全实现JWT身份验证。但是,像其他的API终点api/articlesapi/updateapi/delete等工作正常。这是我的代码。

server.js

const express = require('express');
const bodyParser = require('body-parser');

const port = (process.env.PORT || 3000);
const app = express();

const api = require('./routes/api');
const cors = require('cors');

app.use(bodyParser.json());
app.use(cors());

app.use('/api', api);
app.get('/', function(req, res) {
    res.send('Server is up and running!');
})

app.listen((3000), function() {
    console.log('Server listening on PORT ' + port)
});

api.js

...
const jwt = require('jsonwebtoken');

router.post('/login', (req, res) => {
    const user = {
        id: 1,
        username: 'tanzeel',
        email: '[email protected]',
        password: 'fakepassword' 
    }

    jwt.sign({ user }, 'secretKey', (err, token) => {
        res.json({
            token
        })
    })
})

package.json

...
"dependencies": {
    "body-parser": "^1.19.0",
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "jsonwebtoken": "^8.5.1",
    "mongoose": "^5.6.13",
    "serve": "^11.3.2"
}

我也有其他路线,但是我在这里没有提及,因为它们运行良好并返回正确的json响应。

请指出我的错误。

Naveen Chahar

您的登录api应该可以处理POST请求(因为您已经使用router.post('/ login',)定义了路由)。由于您是从邮递员/浏览器发出GET请求,因此您的请求与您定义的任何路由都不匹配。

发出请求以从服务器获取响应时,将邮递员中的请求类型更改为POST。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Laravel 中的身份验证和保护(保护路由)

Next JS 和 Firebase 身份验证保护路由

laravel 5.2如何只为经过身份验证的用户保护路由

Laravel 多重身份验证保护路由多重中间件不起作用

Flutter 使用 Flutter-fire 身份验证保护器保护路由并避免不必要的重建

没有身份验证,如何保护快速路由?

使用身份验证令牌保护JSON

React Router JWT保护路由

从成功的身份验证返回JWT令牌

JWT 令牌未通过身份验证

Google Actions身份验证流程未发送JWT令牌,如何验证提供的令牌?

如何添加身份验证中间件JWT Django?

如何通过了解身份验证状态访问受保护的路由/禁用身份验证防护

如何从 .Net Core API 中的身份验证 JWT 令牌获取身份用户?

Asp.Net Core和JWT身份验证:如何知道由于令牌过期而导致身份验证失败?

JWT身份验证-防止JWT令牌被盗

如何实现身份验证保护

添加基于策略的授权会跳过JWT承载令牌身份验证检查吗?

将JWT身份验证令牌添加到OkHttp,Dagger 2和Retrofit

向路由添加身份验证

VueJS / Vuex应用-验证用于身份验证的JWT令牌

使用jwt身份验证保护静态文件

如何获取和使用JHipster微服务JWT的身份验证令牌

使用 HTTP 基本身份验证获取 JWT 令牌的安全性如何?

在Firebase中,如何从自定义jwt令牌身份验证获取当前登录的用户

我如何使用从登录视图获得的jwt令牌进行身份验证

使用JWT令牌时应如何处理RESTful身份验证?

如何在 api 请求标头中插入 api 身份验证所需的 jwt 令牌?

如何使用 JWT 令牌验证路由?