У меня есть страница входа в систему с Angular 8 и я использую node js в качестве бэкэнда. Когда два клиента пытаются войти в систему одновременно, один из учетных данных двух пользователей отправляется в API, и оба пользователя входят в систему как один и тот же пользователь.
нижеуказанная функция вызывает API и возвращает обещание;
async login(credentials) {
return new Promise(async (resolve, reject) => {
const user_ = {
username: credentials.loginName,
password: credentials.password
};
await this.http.post(cons.baseUrl + '/auth', user_).toPromise().then(response => {
const result = response;
if (result && result['token']) {
localStorage.setItem('currentuser', result['token']);
const user = this.helper.get_user_from_token();
if (user.username === localStorage.getItem('user') && environment.production) {
localStorage.removeItem('user');
resolve(user);
} else if (!environment.production) { // impersonate user at dev.
resolve(user);
} else {
localStorage.clear();
reject(null);
}
} else {
reject(null);
}
}).catch(error => {
reject(error);
});
}).catch(error => {
reject(error);
});
}
указанная выше функция вызывается как щелчок по нажатию кнопки;
localStorage.setItem('user', f.value.loginName);
await this.auth.login(f.value).then((res: User) => {.... some code}).cat....;
Я не имею ни малейшего представления о том, почему приложение ведет себя таким образом. любая помощь приветствуется.