Som dosť nový na hranatý, vytiahol som kód:
import { Injectable } from "@angular/core";
import { Router } from "@angular/router";
import { JwtHelperService } from "@auth0/angular-jwt";
import { UserService } from "./user.service";
import { HttpClient } from "@angular/common/http";
import { User } from "../shared/models/user.model";
import "rxjs/add/operator/map";
@Injectable()
export class AuthService {
loggedIn = false;
isAdmin = false;
currentUser: User = new User();
constructor(private userService: UserService,
private http: HttpClient,
private router: Router,
private jwtHelper: JwtHelperService) {
const token = localStorage.getItem("token");
if (token) {
const decodedUser = this.decodeUserFromToken(token);
this.setCurrentUser(decodedUser);
}
}
login(emailAndPassword) {
return this.userService.login(emailAndPassword).map(
res => {
localStorage.setItem("token", res.token);
const decodedUser = this.decodeUserFromToken(res.token);
this.setCurrentUser(decodedUser);
return this.loggedIn;
}
);
}
decodeUserFromToken(token) {
return this.jwtHelper.decodeToken(token).user;
}
}
Používam kód vizuálneho štúdia a nezhromažďuje syntaktickú chybu.
Ale dostať chybu v konzole :
Error: StaticInjectorError(AppModule)[AuthService -> JwtHelperService]:
StaticInjectorError(Platform: core)[AuthService -> JwtHelperService]:
NullInjectorError: No provider for JwtHelperService!
at _NullInjector.get (core.js:994)
at resolveToken (core.js:1292)
at tryResolveToken (core.js:1234)
at StaticInjector.get (core.js:1102)
at resolveToken (core.js:1292)
at tryResolveToken (core.js:1234)
odpovede:
0 pre odpoveď č. 1Musíte pridať AuthGuard do zoznamu poskytovateľov v app.module:
providers: [
AuthGuard
],