Требование:
Вы должны подписаться на эти сообщения, прежде чем продолжить ..
Часть 1: Ссылка 1
Часть 2: Ссылка 2
Что такое локальное хранилище?
В его локальной памяти в браузере хранятся данные с неограниченным сроком действия…
Так что сэкономить ..
localStorage.setItem («Имя», «Хамза»);
Чтобы получить значение ..
localStorage.getItem («Имя пользователя»);
В нашем примере ответ, который возвращается из приложения Node:
{«PassNumber»: »1234321,« username »:« HamzaSalem »,« holderName »:« Hamza Salem »,« isuser »:« True »}
Поэтому мы сохраним «passNumber» и «isuser» и проверим значения при входе в компонент входа в систему…
Давайте начнем…
Сначала давайте сохраним его в локальном хранилище ... нам нужно добавить эти строки в my-login.js в функцию handleResponse следующим образом:
if (data.detail .__ data.xhr.response.isuser == ’True’) {
localStorage.setItem («номер прохода», data.detail .__ data.xhr.response.passNumber);
localStorage.setItem («isuser», data.detail .__ data.xhr.response.isuser);
this.set («route.path», «view1»);
}еще{
localStorage.setItem («isuser», data.detail .__ data.xhr.response.isuser);
alert («У вас неправильные имя пользователя и пароль ..»)}
теперь при успешном входе в систему (passNumber, isuser) будут возвращены значения, а в нашем примере это (1234321, True)…
Теперь нам нужно отредактировать функцию для автоматического перенаправления, внутри ready () добавьте это:
if (localStorage.getItem («isuser») == ’True’) {
this.set (‘route.path’, ‘view1’);
console.log («ввод»);
};
Теперь каждый раз, когда вы заходите на страницу входа в систему, приложение будет проверять значение, если оно истинно, и перенаправит вас на главную страницу view1.
А теперь мы хотим убедиться, что passNumber тоже сохранен, поэтому внутри my-view1.js мы добавим этот код:
готов(){
super.ready ();
console.log («Просмотр1»);
this.passNumber = localStorage.getItem («номер прохода»);
console.log (this.passNumber);
}
static get properties () {
возвращение {
passNumber: {
тип: String
}
}
}
А в html просто добавьте
‹H1› Просмотр One PassNumber: {{passNumber}} ‹/h1›
И попробуйте снова войти в систему с нуля, чтобы убедиться, что вы должны получить следующее:

И попробуйте войти с URL-адреса следующим образом: http://127.0.0.1:8081/login вы будете перенаправлены на страницу view1.
Хорошо, теперь мы хотим реализовать функцию выхода из системы…
Внутри my-app.js мы добавим такую кнопку:

Итак, после ‹/iron-selector› добавьте этот код для кнопки:
‹Бумажная кнопка поднимается при нажатии =" выход из системы "класс =" индиго "стиль =" фон: красный; цвет: #fff; ширина: 80% "› Выход ‹/paper-button›
Теперь нам нужно добавить эти функции внутри компонента:
конструктор () {супер ();}
ready () {super.ready ();}
static get properties () {
возвращение {
выйти: {
тип: Функция
}}}
выйти(){
alert («Ложь»);
localStorage.setItem («isuser», «False»);
this.set («route.path», «логин»);
}
И нам нужно добавить это в HTML:
‹App-location route =” {{route}} ”› ‹/app-location›
‹App-route route =” {{route}} ”pattern =” /: view ”data =” {{routeData}} ”tail =” {{subroute}} ”› ‹/app-route›
И не забудьте импортировать библиотеку зависимостей:
импортировать «@ полимер / app-route / app-location.js»;
импортировать «@ polymer / app-route / app-route.js»;
импортировать «@ polymer / paper-button / paper-button.js»;
Теперь вы готовы протестировать кнопку выхода…

Он должен перенаправить вас на страницу входа в систему следующим образом:

Отлично… у вас это получилось. Однако, если вы перейдете по ссылке http://127.0.0.1:8081/view1, вы войдете без входа, и это уязвимость в приложении ... поэтому мы должны проверить, вошли ли вы в систему так что вы добавите этот код в my-app.js внутри функции ready ():
if (localStorage.getItem («isuser») == ’True’) {
this.set («route.path», «view1»);
}еще{
this.set («route.path», «логин»);
}
Этот код перенаправит вас для входа в систему, если вы не вошли в систему….
GoodLuck Bross
Полный код: https://github.com/enghamzasalem/polymer-3-starter-kit-with-login-using-node-js