在 Header 中传递 JWT
Pass JWT in Header
我正在使用 NodeJs 学习 JWT。我坚持在 header 中传递 JWT 实际上我不知道该怎么做。
index.js 文件
var express = require('express'),
app = express(),
routes = require('./routes'),
bodyParser = require('body-parser'),
path = require('path'),
ejs = require('ejs'),
jwt = require('jsonwebtoken');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.post('/home',routes.loginUser);
app.get('/', function(req, res) {
res.render('index');
});
app.get('/home',function(req, res) {
jwt.verify(req.token, 'qwertyu6456asdfghj', function(err, data) {
if (err) {
res.sendStatus(403);
}
});
});
app.listen(3000,function(){
console.log("Server running at Port 3000");
});
routes/index.js文件
var jwt = require('jsonwebtoken');
exports.home = function(req, res){
res.render('home',{error: false});
};
exports.loginUser = function(req, res) {
var uname = req.body.Username;
var pwd = req.body.Password;
if(uname && pwd === 'admin'){
res.render('home');
var token = jwt.sign({ user: uname }, 'qwertyuiopasdfghj');
console.log('Authentication is done successfully.....');
console.log(token);
}
response.json({
authsuccess: true,
description: 'Sending the Access Token',
token: token
});
};
当我 运行 应用程序时,我正在 console.log
中获取令牌但是
如何在 header 中传递令牌并将其存储在浏览器的 localStorage 中?
正如@ChicoDelaBarrio 告诉您的那样,这取决于客户。 Postman 是开始检查后端的好地方。但是在你的服务器工作之后,你必须开始在你的客户端工作。
如果您想要 Node.js 中关于 JWT 的完整后端示例,包括刷新令牌,我向您推荐这个 post 关于它的内容:Refresh token with JWT authentication in Node.js
也许您可以重用大部分代码。在这种情况下,header 不是用 BEARER 创建的,而是在开头使用 JWT,但它的工作原理是一样的
所以你想将令牌发送到前端而不是在正文中。
推荐的方法是使用 cookie。可以在cookie中设置token,前后端自动获取。
res.cookie('tokenKey', 'ajsbjabcjcTOKENajbdcjabdcjdc');
使用authorization headers也是一个很好的方法,但是同样,在前端,你必须从headers中获取token,然后保存在localStorage或cookie中,如果是cookie,你不必这样做.
res.header(field [, value]);
我正在使用 NodeJs 学习 JWT。我坚持在 header 中传递 JWT 实际上我不知道该怎么做。
index.js 文件
var express = require('express'),
app = express(),
routes = require('./routes'),
bodyParser = require('body-parser'),
path = require('path'),
ejs = require('ejs'),
jwt = require('jsonwebtoken');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.post('/home',routes.loginUser);
app.get('/', function(req, res) {
res.render('index');
});
app.get('/home',function(req, res) {
jwt.verify(req.token, 'qwertyu6456asdfghj', function(err, data) {
if (err) {
res.sendStatus(403);
}
});
});
app.listen(3000,function(){
console.log("Server running at Port 3000");
});
routes/index.js文件
var jwt = require('jsonwebtoken');
exports.home = function(req, res){
res.render('home',{error: false});
};
exports.loginUser = function(req, res) {
var uname = req.body.Username;
var pwd = req.body.Password;
if(uname && pwd === 'admin'){
res.render('home');
var token = jwt.sign({ user: uname }, 'qwertyuiopasdfghj');
console.log('Authentication is done successfully.....');
console.log(token);
}
response.json({
authsuccess: true,
description: 'Sending the Access Token',
token: token
});
};
当我 运行 应用程序时,我正在 console.log
中获取令牌但是
如何在 header 中传递令牌并将其存储在浏览器的 localStorage 中?
正如@ChicoDelaBarrio 告诉您的那样,这取决于客户。 Postman 是开始检查后端的好地方。但是在你的服务器工作之后,你必须开始在你的客户端工作。
如果您想要 Node.js 中关于 JWT 的完整后端示例,包括刷新令牌,我向您推荐这个 post 关于它的内容:Refresh token with JWT authentication in Node.js 也许您可以重用大部分代码。在这种情况下,header 不是用 BEARER 创建的,而是在开头使用 JWT,但它的工作原理是一样的
所以你想将令牌发送到前端而不是在正文中。
推荐的方法是使用 cookie。可以在cookie中设置token,前后端自动获取。
res.cookie('tokenKey', 'ajsbjabcjcTOKENajbdcjabdcjdc');
使用authorization headers也是一个很好的方法,但是同样,在前端,你必须从headers中获取token,然后保存在localStorage或cookie中,如果是cookie,你不必这样做.
res.header(field [, value]);