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