применить метод аутентификации на всех маршрутизаторах в экспрессе - PullRequest
0 голосов
/ 22 ноября 2018

Я очень новичок в узле.

Я хочу применить пользовательскую аутентификацию, используя passport.js - all router.

, используя этот пример.-> https://github.com/passport/express-4.x-http-bearer-example

код ниже - мой сервер / index.js.

    const express = require('express');
    const path = require('path');
    const index = require('./routes/index.js');
    const downloadRouter = require('./routes/fileDownload.js');

    const app = express();

    app.disable("x-powered-by");

    app.use('/', express.static(path.join(__dirname, '..', 'dist')));



    app.set("src", path.join(__dirname, "../src"));



    var passport = require('passport');
    var Strategy = require('passport-http-bearer').Strategy;
    var db = require('./adminDB');

    passport.use(new Strategy(
      function(token, cb) {
        db.users.findByToken(token, function(err, user) {
          if (err) { return cb(err); }
          if (!user) { return cb(null, false); }
          return cb(null, user);
        });
      }));

    // app.use('/api-test', passport.authenticate('bearer', { session: false 
     }), function(req, res) {
    //     res.json({ username: req.user.username, value: 
          req.user.emails[0].value });
    //     res.end(); 
    //   });

    app.use('*', passport.authenticate('bearer', { session: false }), 
       function(req, res, next) {
           console.log("api all before action")
      if(!err) {
        next();
      } else {
        res.status(401).end();
      }
    });

    app.use('/download', downloadRouter);



    const { PORT = 8080 } = process.env;
    app.listen(PORT, () => console.log(`Listening on port ${PORT}`)); 

    // export default app;

я хочу спросить об этой части.

Аннотированные api-test запчасти отлично справляются с аутентификацией.Однако часть app.use (*) не обрабатывает ее.console.log тоже не работает.Возвращает 200 независимо от процедуры сертификации, выводя исходный экран (index.html).

Как мне выполнить проверку подлинности на всех моих маршрутизаторах и вернуть все экраны обратно на исходный вывод?

1 Ответ

0 голосов
/ 22 ноября 2018

Я оставляю ответ, потому что может быть кто-то в подобной ситуации.

app.use('*', passport.authenticate('bearer', { session: false }), function(req, res, next) {
  next();
});

поставьте этот код, затем код маршрутизатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...