3

我正在使用令牌 jwt 进行管理仪表板。我希望用户只有在登录后才能访问中间件。如果他已登录,我想这样做,如果没有,服务器将显示主页,然后将他重定向到登录页面。下面是我的中间件 index.js

const auth = require('feathers-authentication');

const pupils = require('./pupils');
const login = require('./login');

const home = require('./home');

module.exports = function () {
  // Add your custom middleware here. Remember, that
  // in Express the order matters
  const app = this; // eslint-disable-line no-unused-vars

  app.use('/pupils.html', pupils());
  app.use('/login.html', login());
  app.use('/', home());

  app.post('/login', auth.express.authenticate('local', { successRedirect: '/', failureRedirect: '/login.html' }));
};

和使用把手的学生.js

const lang = require('../../config/pupils.json');

module.exports = function (options = {}) {

  return function login(req, res) {

      res.render('home', lang);

  };
};

如果我打开主路径“/”,那么它会重定向到 /login.html

我尝试在代码下方验证我的用户:

  app.authenticate({
      strategy: 'local',
      email: 'username',
      password: 'password'
    }).then(function(result){
      console.log('Authenticated!', result);
    }).catch(function(error){
      console.error('Error authenticating!', error);
    });

当使用 app.authenticate 方法时,我收到一个令牌对象,它存储在本地存储中,但是当我再次尝试打开主路径时,我再次重定向到 /login.html。我做错了什么?

我该怎么做:

1) I open this address http://127.0.0.1:3030:/
2) middleware on the server check if user is logged
3) if logged show home page, if not show login page
4

0 回答 0