如何使用feathersjs在使用NodeJs响应之前发送令牌jwt进行验证?

时间:2017-11-01 19:20:25

标签: node.js express jwt feathersjs feathers-authentication

我正在使用令牌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' }));
};

和pupils.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

0 个答案:

没有答案