【发布时间】:2018-03-05 11:46:48
【问题描述】:
我对 Angular 很陌生,我获取了代码:
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;
}
}
我正在使用 Visual Studio 代码,它没有抛出任何语法错误。
但在控制台中出现错误:
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)
【问题讨论】:
-
您导入 angular-jwt 这是用于 angularjs 应用程序。改为安装 angular2-jwt
-
在上面安装时收到消息“angular2-jwt@0.2.3 需要 @angular/core@^2.0.0||^4.0.0 的对等体,但没有安装”
-
你试过了吗:
import { JwtHelperService } from '@auth0/angular-jwt';npm install @auth0/angular-jwt --save之后 -
它现在修复了...github.com/DavideViolante/Angular-Full-Stack/issues/173我已经关闭它
标签: angular angular2-jwt