gpt4 book ai didi

javascript - NodeJS JWT token 验证

转载 作者:行者123 更新时间:2023-11-30 07:22:32 25 4
gpt4 key购买 nike

我正在尝试使用 NodeJS 验证签名 token 并从中提取信息。

我现在浏览器里有一个token,名字叫userToken,我登录后保存了(顺便说一句,我是用auth0登录的)。

我试图在这里手动验证我的 token :http://jwt.io ,它可以正常工作并毫无问题地为我提供有效载荷数据。但是,我不能用 NodeJS 做同样的事情。我该怎么做?

我阅读了文档,但无法理解。 https://github.com/auth0/express-jwt

这是我的 server.js

var http = require('http');
var express = require('express');
var cors = require('cors');
var app = express();
var jwt = require('express-jwt');
var dotenv = require('dotenv');

dotenv.load();

var authenticate = jwt({
secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'),
audience: process.env.AUTH0_CLIENT_ID
});


// view engine setup
var path = require('path');
app.set('views', path.join(__dirname, 'views'));
app.use(express.static(path.join(__dirname, 'public')));

app.set('view engine', 'jade');


app.configure(function () {

// Request body parsing middleware should be above methodOverride
app.use(express.bodyParser());
app.use(express.urlencoded());
app.use(express.json());
app.use(cors());

app.use(app.router);
});


app.get('/', function (req, res) {
res.render('index');
});

app.get('/test', function(req,res) {
// how do I check it?
});


var port = process.env.PORT || 3001;

http.createServer(app).listen(port, function (err) {
console.log('listening in http://localhost:' + port);
});

最佳答案

您不需要执行任何操作。由于您正在使用此 express-jwt,只需将 userProperty 标记传递给 jwt:

var authenticate = jwt({
secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'),
audience: process.env.AUTH0_CLIENT_ID,
userProperty: 'payload'
});

因此,您可以在 Controller 中使用 req.payload 获取所有 jwt 负载数据。您可以使用 console.log(req.payload) 检查它。

你可以在这里看到它是如何工作的:https://github.com/auth0/express-jwt/blob/master/lib/index.js#L121

希望对您有所帮助,抱歉我的英语不好。

关于javascript - NodeJS JWT token 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33206941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com