Паспорт JWT работает в почтальоне, но не авторизован в браузере - PullRequest
0 голосов
/ 06 марта 2019

Я использую passport-jwt с "jwt" в качестве стратегии. Когда я вручную предоставляю заголовок авторизации в почтальоне, мой код работает правильно для почтальона. Но когда я проверяю то же самое в моем браузере в то время, когда он выбрасывает " «Несанкционированная» ошибка может быть из-за несоблюдения токена. Я новичок в passport-jwt, и у меня нет точной проблемы, почему он работает в почтальоне и не работает в браузере, любезно предоставьте мне решение.

Мой код дает ниже:

//passport.js

var JwtStrategy = require('passport-jwt').Strategy,
ExtractJwt = require('passport-jwt').ExtractJwt;

var user = require('../models/user.model');
var config = require('../db/config');

module.exports = function(passport) {
var opts = {};
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderWithScheme('jwt');

opts.secretOrKey = config.secret;
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
    console.log(jwt_payload);
    user.findOne({id: jwt_payload._id}, function(err, user) {
        if (err) {
            return done(err, false);
        }
        if (user) {
            console.log("FOUND");
            done(null, user);
        } else {
            done(null, false);
        }
    });
 }));
};

Мой маршрутный API вызывает один контроллер, указанный ниже:

//route.js
router.post('/saveBook', passport.authenticate('jwt',
{ session: false}),autController.saveBook);

Файл контроллера:

var mongoose1 = require('../db/db');
var passport = require('passport');
var config = require('../db/config');
require('../db/passport')(passport);
var user = require('../models/user.model');
var Book = require('../models/book.model');
var jwt = require('jsonwebtoken');
var bcrypt = require('bcrypt');
var path = require('path');

exports.saveBook =  function(req, res)  {
console.log(req.headers);

  var newBook = new Book();
  newBook.isbn=req.body.isbn;
  newBook.title= req.body.title;
  newBook.author= req.body.author;
  newBook.publisher= req.body.pub;

  newBook.save(function(err) {
    if (err) {
      console.log(err);
    }else {
    res.json({success: true, msg: 'Successful created new book.'});}
  });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...