Express-jwt と jsonwebtokens をテストしています。私はこれまでにこれを使用したことがなく、助けが必要です!
基本的なセットアップは完了しており、保護されたルートは 1 つしかありません。
app.use('/api', expressJWT({secret: 'cat'}));
残念ながら、このエラーが発生するため、「/api」にアクセスできません
UnauthorizedError: No authorization token was found
POSTman を使用して、次のヘッダーで GET リクエストを発行すると、
Authorization -> Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6ImJhc2hpciIsImlhdCI6MTQ1MTQ0MjM4NywiZXhwIjoxNDUxNDQyNjg3fQ.CnaLvS_oCEy_mp_9MSAmTTylJqQMI2Qlq9V3emAmN3E
すべて正常に動作し、'/api' のコンテンツにアクセスできます。
しかし、私の問題は、特にユーザーを新しい保護されたルートにリダイレクトしようとするときの高速アプリケーションにあります。
ユーザーがログインし、新しい jwt トークンを作成して、ユーザーを「/api」にリダイレクトします
router.post('/login', passport.authenticate('local'), function (req, res) {
myToken = jwt.sign({
username: req.body.username
}, 'cat', {expiresIn: 60*5});
res.redirect('/api');
});
このルートでは、ヘッダーを設定してページをレンダリングします。
router.get('/api', function (req, res) {
res.render('index', {user: req.user});
});
残念ながら、次のエラーが表示されます
UnauthorizedError: No authorization token was found
私の目標は、ユーザーを保護されたルートにリダイレクトできるようにすることです。
私の理解では、 /api は保護されたルートであるため、express-jwt は認証ヘッダーを設定する必要があります。ミドルウェアを使用してヘッダーを手動で設定しようとしても、エラーが発生します。
どんな助けでも大歓迎です!
ありがとう!