Я только начал работать над уже существующим проектом веб-приложения. Прямо сейчас, когда пользователь пытается войти в систему с неверными учетными данными, страница перенаправляется на страницу «relogin». Где сообщение «Пожалуйста, введите действительные учетные данные» жестко закодировано в HTML, чтобы показать «сообщение об ошибке». Меня попросили добавить еще одну функциональность в приложение. Я хочу показать пользователю сообщение, которое возвращает сервер.
Например: -
Если ответ сервера
{ result : "false" , message : " Invalid email " }
Я хочу показать пользователю «Пожалуйста, введите действительный адрес электронной почты».
Если ответ сервера
{ result : "false" ,message : " Invalid password " }
Я хочу показать пользователю «Пожалуйста, введите правильный пароль».
, но из-за настоящего кода я не могу этого сделать.
Пожалуйста, помогите мне с этой задачей.
Заранее спасибо.
Я прилагаю свой app.js, passport.js, authenticate.js код. пожалуйста, сообщите, если вам нужно больше деталей.
- app.js -
var express = require('express');
var path = require('path');
var logger = require('morgan');
var bodyParser = require('body-parser');
var session = require('express-session');
var passport = require('passport');
var initPassport = require('./passport');
initPassport(passport);
var routes = require('./routes/routes');
var authenticate = require('./routes/authenticate')(passport);
app.use('/',routes);
app.use('/auth',authenticate);
'' '
- authenticate.js -
var express = require('express');
var router = express.Router();
var path = require('path');
module.exports = function(passport) {
router.get('/logout', function(req, res){
req.logout();
res.redirect('/');
});
router.post('/login',passport.authenticate('login',{
successRedirect: '/',
failureRedirect: '/relogin',
}));
return router;
};
'' '
- passport.js -
var LocalStrategy = require('passport-local').Strategy;
var pg = require('pg');
var path = require('path');
var fs = require('fs');
var Client = require('node-rest-client').Client;
var client = new Client();
module.exports = function(passport){
passport.use('login', new LocalStrategy({
passReqToCallback : true
},
function(req, username, password, done) {
var client = new Client();
client.get(serverHost+serverRoot+"/validateuser?username="+username+"& password="+password, function (data, response) {
// parsed response body as js object
// raw response
console.log("response from server ", data);
if(data.result == "true")
return done(null, username);
else
return done(null ,false );
});
}));
}
''»
РЕДАКТИРОВАТЬ 1: -
Нет углового кода для входа в систему.
Вся процедура происходит только в html.
Я прилагаю код HTML. Спасибо
HTML код: -
<body>
<div class="col-md-6 offset-3">
<form action="/auth/login" method="post" >
<div class="form-group mb-4 mt-4"><input id="email" class="form-control
form-control-rounded" type="text" name = "username"
placeholder="Username" ></div>
<div class="form-group mb-4 mt-4"><input id="password" class="form-control
form-control-rounded" type="password" name="password"
placeholder="Password"></div>
<button type = "submit" value = "Login" class="btn btn-rounded btn-primary btn-block mt-2">Sign In</button>
</form>
</div>
</body>