Угловой вход в систему пользователей с локальным хранилищем, ничего не хранится - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь войти в систему с помощью пользователей Angular (6.0.2), и я делаю это, сохраняя «текущего пользователя» в локальном хранилище, но ничего не сохраняется.Вот код:

import { Injectable } from '@angular/core';
import { Observable, of } from 'rxjs';
import { map, catchError } from 'rxjs/operators'
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Userlogon } from '../_models/Userlogon';
import { User } from '../_models/User';

const HttpOptions = {
  headers: new HttpHeaders({ "Content-type": "application/json" })
};

@Injectable({
  providedIn: 'root'
})
export class AuthService {
  loginobject: any;
  private usersUrl= '/api/v1/accounts/';
  private logonUrl= '/api/v1/auth/login/';
  private logoutUrl= '/api/v1/auth/logout/';

  constructor(
    private http: HttpClient
  ) { }

  login(username: string, password: string) {
    this.loginobject=JSON.stringify({"username": username, "password": password});
    return this.http.post<any>(this.logonUrl, this.loginobject, HttpOptions)
      .pipe(map(user => {
        if (user && user.token){
          localStorage.setItem('currentUser', JSON.stringify(user));
          return console.log(user);
        }
      }));
  }

  logout(){
    localStorage.removeItem('currentUser');
    return this.http.get<any>(this.logoutUrl).subscribe(response => console.log(response));
  }
}

А вот и Auth-Guard:

import { Injectable } from '@angular/core';
import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { AuthService } from '../_services/auth.service';

@Injectable({
  providedIn: 'root'
})
export class AuthGuardService implements CanActivate {

  constructor(
    private router: Router,
  ) { }

  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot){
    if(localStorage.getItem('currentUser')){
      return true;
    }
    this.router.navigate(['/login'], { queryParams: { returnUrl : state.url }});
    return false;
  }
}

Возвращает консольный журнал аутентифицированного пользователя из серверной части, который, к счастью, работает как задумано, ноничего не хранится локально.Есть ли что-то, что должно быть включено для меня, чтобы иметь возможность хранить вещи локально, или это что-то еще, что может быть не так?

Изображение отладчика: enter image description here

Изображение журнала консоли при входе в систему: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...