問題描述
我正在使用 NodeJs 學習 JWT.我被困在通過標頭中的 JWT 實際上我不知道該怎么做.
I am learning JWT with NodeJs. I am stuck at passing the JWT in header actually i do not know how to do this.
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 中?
when i run the application i am getting the token in console.log
but
How can I pass token in header and store it in localStorage of browser?
推薦答案
所以你想將令牌發送到前端而不是正文中.
So you want to send the token to frontend but not in the body.
推薦的方法是使用 cookie.可以在cookie中設置token,可以在前端和后端自動訪問.
The Recommended way to do so is to use cookies. You can set the token in the cookie and it can be automatically accessed in front-end and in the backend.
res.cookie('tokenKey', 'ajsbjabcjcTOKENajbdcjabdcjdc');
使用授權標頭也是一個好方法,但同樣,在前端,您必須從標頭中獲取令牌,然后保存在 localStorage 或 cookie 中,如果是 cookie,您不必這樣做.
Using authorization headers is also a good approach, but again, in front-end, you have to fetch the token from headers and then save in localStorage or cookie, which you don't have to do in case of cookie.
res.header(field [, value]);
這篇關于在標頭中傳遞 JWT的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!