UserID не определен при прохождении аутентификации

Я могу войти в систему и получить токен и имя пользователя, но идентификатор пользователя не определен. я могу консоль регистрировать все данные пользователей, имя пользователя и токен, но userId не определен. я использую инфраструктуру сущностей на бэкэнде и создаю пользователя без идентификатора, но я даже пробовал с идентификатором, и это также не работает.

в чем может быть причина?

login(username: string, password: string): Observable<boolean> {
    return this.http.post<any>(environment.apiUrl + '/token', {username, password})
      .pipe(map(response => {
        const token = response.token;
        const userID = response.userID;
        console.info(userID);
        // login successful if there's a jwt token in the response
        if (token) {
          // store username and jwt token in local storage to keep user logged in between page refreshes
          localStorage.setItem('currentUser', JSON.stringify({userID, username, token}));
          // return true to indicate successful login
          return true;
        } else {
          // return false to indicate failed login
          return false;
        }
      }));
  }

Серверная часть:

User admin = ctx.Users.Add(new User()
            {
                UserId = 1, (try without it and with)
                Username = "admin",
                PasswordHash = passwordHashAdmin,
                PasswordSalt = passwordSaltAdmin,
                IsAdmin = true,

            }).Entity;

Является ли имя поля userId вместо userID? Попробуйте записать в консоль полный ответ, чтобы узнать, что возвращается от API.

Lambo14 13.12.2020 16:00

в ответ я получаю имя пользователя и токен

user13597689 13.12.2020 16:08
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
2
469
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Javascript чувствителен к регистру.

В вашей модели С# у вас есть:

UserId = 1, (try without it and with)

Я предполагаю, что вы используете camelCase, поэтому он будет возвращен из API как userId.

В Javascript у вас есть:

response.userID;

Обратите внимание, что буква D — заглавная. Измените это на нижний регистр.

Также вы могли бы поймать это раньше, если бы вы только что сделали:

console.info(response);

Чтобы проверить всю возвращенную полезную нагрузку.

Другие вопросы по теме