假设我发帖子请求创建我的令牌。
public tokenInfo: TokenInfo;
public login(creds){
return this.http.post<TokenInfo>(this.baseUrl + "Account/CreateToken", creds)
.map(res =>{
this.tokenInfo = res;
return true;
})
}
我收回了我的令牌和到期日期。类似的东西:
{token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ...", expiration: "2017-12-04T03:40:55Z"}
如何保留它以便其他组件可以利用它?首先想到的是菜单栏左下角的display the name of the logged user
并隐藏Login
项。
感谢您的帮助
答案 0 :(得分:1)
您可以将令牌保存在网络存储空间中,如下所示:
window.localStorage.setItem('token', res.token);
你可以像以后一样得到它:
window.localStorage.getItem('token');
答案 1 :(得分:1)
我会为此目的使用服务:
@Injectable()
export class AuthService {
authToken: TokenInfo;
public login(creds) {
// You could store the auth token in local storage here instead.
return this.http.post('/login').subscribe((res) => this.authToken = res);
}
public getAuthToken() {
return this.authToken;
}
}
export class YourComponent {
constructor(private authService: AuthService) { }
login() {
this.authService.login({ /* Your credentials. */ });
}
displayToken() {
alert(this.authService.getAuthToken());
}
}