Javascript 更新angular2 jwt和一组节点模块后,auth0停止工作
所以当我开始更新我的节点模块和其他东西到最新版本时。即使在更新之前,我的auth0登录也已正确停止工作。它工作得很好。但是现在我的登录已经不能正常工作了,我也不知道发生了什么。当我查看localstorage时,我发现尽管登录是正确的,但电子邮件返回false。我怀疑angular2 jwt的更新有问题,但不能完全确定。 基于本文的登录,但不知道发生了什么变化Javascript 更新angular2 jwt和一组节点模块后,auth0停止工作,javascript,angular,auth0,Javascript,Angular,Auth0,所以当我开始更新我的节点模块和其他东西到最新版本时。即使在更新之前,我的auth0登录也已正确停止工作。它工作得很好。但是现在我的登录已经不能正常工作了,我也不知道发生了什么。当我查看localstorage时,我发现尽管登录是正确的,但电子邮件返回false。我怀疑angular2 jwt的更新有问题,但不能完全确定。 基于本文的登录,但不知道发生了什么变化 // services/auth.service.ts import { Injectable, NgZone } from
// services/auth.service.ts
import { Injectable, NgZone } from '@angular/core';
import {Router} from '@angular/router';
import { tokenNotExpired } from 'angular2-jwt';
// We want to avoid any 'name not found'
// warnings from TypeScript
declare var Auth0Lock: any;
@Injectable()
export class AuthenticationService {
constructor( private _router: Router, private _zone: NgZone) {}
lock = new Auth0Lock('clientid', 'domain');
login() {
this.lock.show((error: string, profile: Object, id_token: string) => {
if (error) {
console.log(error);
}
// We get a profile object for the user from Auth0
localStorage.setItem('profile', JSON.stringify(profile));
// We also get the user's JWT
localStorage.setItem('id_token', id_token);
});
}
logout() {
// To log out, we just need to remove
// the user's profile and token
localStorage.removeItem('profile');
localStorage.removeItem('id_token');
}
loggedIn() {
return tokenNotExpired();
}
}
navbar.component.html
<nav class="navbar navbar-fixed-top navbar-dark bg-primary">
<div class="container">
<button class="navbar-toggler hidden-sm-up" type="button" data-toggle="collapse" data-target="#exCollapsingNavbar">
☰
</button>
<div class="collapse navbar-toggleable-xs" id="exCollapsingNavbar">
<a class="navbar-brand display-nav" [routerLink]="['/home']"></a>
<div class="nav navbar-nav">
<a class="nav-item nav-link active" [routerLink]="['/home']">
Home <span class="sr-only">(current)</span>
</a>
<a class="nav-item nav-link" [routerLink]="['/about']">About</a>
<a class="nav-item nav-link" (click)="auth.login()" >Login</a>
<a class="nav-item nav-link" (click)="auth.logout()" >Logout</a>
</div>
<div class="nav navbar-nav float-xs-right">
<db-cart-menu ></db-cart-menu>
</div>
</div>
</div>
</nav>
您是否忘记在控制台中包含正在输出的错误?你在那里寻找线索了吗?我发现的唯一一个不含糊的错误是在本地存储和配置文件中查找电子邮件验证返回false。你忘了在控制台中包含正在输出的错误吗?你在那里寻找线索了吗?我发现的唯一一个不含糊的错误是在本地存储和配置文件中查找电子邮件验证返回false。
import { Component } from '@angular/core';
import { AuthenticationService } from '../services/authentication.service';
@Component({
selector: 'db-navbar',
templateUrl: 'app/navbar/navbar.component.html',
providers: [ AuthenticationService ]
})
export class NavbarComponent {
constructor(private auth: AuthenticationService) {}
login() {
this.auth.login();
}
logout() {
this.auth.logout();
}
loggedIn () {
this.auth.loggedIn();
}
}