首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试从angular2-jwt中使用tokenNotExpired,但模块中出现了错误。

尝试从angular2-jwt中使用tokenNotExpired,但模块中出现了错误。
EN

Stack Overflow用户
提问于 2018-06-10 03:43:55
回答 1查看 1.2K关注 0票数 0

我试图使用angular2-jwt的tokenNotExpired来检查用户是否登录。但是,当我实现这一点时,我在cli中得到以下错误:-

代码语言:javascript
复制
ERROR in node_modules/angular2-jwt/angular2-jwt.d.ts(3,10): error TS2305: Module '"d:/Visual Studio/asp.net/mean_blog/client/node_modules/rxjs/Observable"' has no exported member 'Observable'.
node_modules/rxjs/Observable.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/Observable'.

我已经安装angular2-jwt使用"npm安装angular2-jWT@最新-保存“逗号。

以下是auth.service.ts代码:-

代码语言:javascript
复制
import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions } from '@angular/http';
import { map, take } from 'rxjs/operators';
import { tokenNotExpired } from 'angular2-jwt';

@Injectable({
  providedIn: 'root'
})
export class AuthService {

  authToken;
  user;
  options;
  constructor(private http: Http) { }

  createAuthenticationHeaders(){
    this.loadToken();
    this.options = new RequestOptions({
      headers:new Headers({
        'Content-Type':'application/json',
        'authorization':this.authToken
      })
    })
  }

  loadToken(){
    this.authToken = localStorage.getItem('token');
  }

  registerUser(user) {
    return this.http.post('/api/auth/register', user).pipe(map(res => res.json()));
  }
  checkUsername(username) {

    return this.http.get('/api/auth/checkUsername/' + username).pipe(map(res => res.json()));
  }
  checkEMail(email) {
    return this.http.get('/api/auth/checkEmail/' + email).pipe(map(res => res.json()));
  }

  login(user){
    return this.http.post('/api/auth/login',user).pipe(map(res=>res.json()));
  }
  logout(){
    this.authToken = null;
    this.user = null;
    localStorage.clear();
  }
  storeUserData(token, user){
    localStorage.setItem('token',token);
    localStorage.setItem('user',JSON.stringify(user));
    this.authToken = token;
    this.user = user
  }

  getProfile(){
    this.createAuthenticationHeaders();
    return this.http.get('/api/auth/profile',this.options).pipe(map(res=>res.json()));
  }
  loggedIn() {
    return tokenNotExpired();
  }
}

我还检查了package.json中也正确添加的依赖项。我不知道这个错误是从哪里发生的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-29 16:25:50

rxjs的某些功能在角6中被废弃,因此我使用rxjs-compat来实现向后兼容性。它解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50780367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档