Express-jwtモジュールでnode.js と express.js を使用しており、すべてをテストするために単純な HTTP サーバーをセットアップしました。
関連するノード コードは次のとおりです。
app.set('port', process.env.PORT || 3000);
app.use(express.methodOverride());
app.use(allow_cross_domain);
app.use('/api', expressJwt({secret: '09qrjjwef923jnrge$5ndjwk'}));
app.use(express.json());
app.use(express.urlencoded());
app.use('/', express.static(__dirname + '/'));
app.use(function(err, req, res, next){
if (err.constructor.name === 'UnauthorizedError') {
res.send(401, 'Unauthorized');
}
});
app.get('login',function(req,res){
//...
jwt.sign(results.username+results.email, secret, { expiresInMinutes: 9000000000*9393939393393939393939 });
});
app.post('api/profile',function(req,res){
console.log(req.user); // this return undefined in console
res.send(req.user); // response is pending and dunno why it returns error in browser console
});
/login
そのため、 URLを開いてログインし、セッション トークンを に送信するapi/post
と、ブラウザ コンソールに次の応答エラーが返されます。
{"error":{"message":"invalid signature","code":"invalid_token","status":401,"inner":{}}}
フロントエンドに保存されているトークンと JWT のトークンが同じであるため、なぜこれが起こっているのかわかりません。このエラーの原因は何ですか?
URLPOST
に編集されたヘッダーの例:api/post