mikenicholson/passport-jwt

jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), TypeError: Cannot read property 'fromAuthHeaderAsBearerToken' of undefined

vishal764 opened this issue · 1 comments

//this is my code
var express = require("express");
var bodyParser = require("body-parser");
var jwt = require("jsonwebtoken");
var passport = require("passport");
var passportJWT = require("passport-jwt");
var { ExtractJwt } = passportJWT;
var Strategy = passportJWT.Strategy;

var jwtSecret = "yoursecretkeyishere";
var params = {
secretOrKey: jwtSecret,
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
};

var app = express();

app.use(function (req, res, next) {
res.header("Access-Control_Allow-Origin", "*");
res.header(
"Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept"
);
res.header("Access-Control-Expose-Headers", "X-Auth-Token");
});

app.use(bodyParser.json());
passport.initialize();

let users = [
{ id: "A9", email: "abc@15", password: "abc@123" },
{ id: "A8", email: "abc@1", password: "abc@123" },
];

var strategy = new Strategy(params, function (payload, done) {
let id = users.findIndex((obj) => payload.id === obj.id);
var user = users[+id] || null;
if (user) {
return done(null, {
id: user.id,
});
} else {
return done(new Error("User not found"), null);
}
});

passport.use(strategy);
const jwtExpirySeconds = 300;

app.post("/user", function (req, res, payload) {
if (req.body.email && req.body.password) {
var email = req.body.email;
var password = req.body.password;

var user = users.find(function (u) {
  return u.email === email && u.password === password;
});
if (user) {
  var payload = {
    id: user.id,
  };
  var token = jwt.sign(payload, jwtSecret, {
    algorithm: "HS256",
    expiresIn: jwtExpirySeconds,
  });

  res.setHeader("X-Auth-Token", token);
  res.json({ success: true, token: "bearer" + token });
} else {
  res.sendStatus(401);
}

} else {
res.sendStatus(401);
}
});

Sorry, github issues are for bugs or problems with the passport-jwt module. I can't provide debugging or help implementing your application.

Consider opening a question on Stack Overflow or looking into the many available tutorials.