前提・実現したいこと
JWTを使用した認証フロー実装しようとしています。
Node.js/expressのRestAPI形式でJWTの発行及び検証を処理する形にしています。
色々なサイトを参考に見ているとJWTの検証の際に、ほとんどの方は以下のようにpspport,passport-jwtを使用してJWTの検証を行っていました。
const passport = require('passport'); const passportJWT = require('passport-jwt'); const ExtractJWT = passportJWT.ExtractJwt; const JWTStrategy = passportJWT.Strategy; passport.use(new JWTStrategy( { jwtFromRequest: ExtractJWT.fromAuthHeaderAsBearerToken(), issuer: ISSUER, secretOrKey: SECRET }, (payload, done) => { //得られたID等をもとに情報を入手する処理... } ));
しかし、jsonwebtokenを使えばJWTの発行から検証まで一つのライブラリで済ますことができます。↑のpasspoetを使う場合もJWTの発行自体はjsonwebtokenを使用しています。
const jwt = require("jsonwebtoken"); jwt.verify(token, SECRET_KEY, function(err, decoded) { if (err) { // 認証NG } else { //得られたID等をもとに情報を入手する処理... } })
検証後の処理も特に差があるわけではない気がします。
なぜ、わざわざpassport,passport-jwtを使うのでしょうか。
あなたの回答
tips
プレビュー