我正在使用令牌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