Есть приложение где используется angular2-token. Проблема в том что аутентификация не куда не записывается и после обновления страницы она напросто пропадает. Из-за это было добавлен localStorage, но на теперь в консоль появляется ошибка синтаксиса:
ERROR SyntaxError: Unexpected token o in JSON at position 1
Unhandled Promise rejection: Unexpected token o in JSON at position 1 ; Zone: <root> ; Task: Promise.then ; Value: SyntaxError: Unexpected token o in JSON at position 1
Как можно это исправить?
import { Injectable } from '@angular/core';
import {Angular2TokenService} from 'angular2-token';
import { Response} from '@angular/http';
import {Subject} from 'rxjs/Subject';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/map';
@Injectable()
export class AuthService {
public token: string;
userSignedIn$:Subject<boolean> = new Subject();
constructor(private authService:Angular2TokenService) {
this.userSignedIn$.next(this.authService.userSignedIn());
var currentUser = JSON.parse(localStorage.getItem('currentUser'));
this.token = currentUser && currentUser.token;
}
logOutUser():Observable<Response>{
return this.authService.signOut().map(
res => {
this.token = null;
localStorage.removeItem('currentUser');
this.userSignedIn$.next(false);
return res;
}
);
}
logInUser(signInData: {email:string, password:string}):Observable<Response>{
return this.authService.signIn(signInData).map(
res => {
localStorage.setItem("currentUser", signInData.toString());
this.userSignedIn$.next(true);
return res
}
);
}
registerUser(signUpData: {email:string, password:string, passwordConfirmation:string}):Observable<Response>{
return this.authService.registerAccount(signUpData).map(
res => {
localStorage.setItem("currentUser", signUpData.toString());
this.userSignedIn$.next(true);
return res
}
);
}
}