- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个 angular2 应用程序。为了对用户进行身份验证,我将 token 存储在本地存储中。该 token 仅包含一些用于识别用户的信息,没有进一步的信息,例如用户 Angular 色等。现在我想将其存档:
当用户(重新)加载页面(任何路由)并且存储了 token 时,我想创建一个 XHR 来检索用户数据。我希望应用程序(路由器?)等待服务器发送数据。
我的问题是:我应该在哪里发出此请求以及如何阻止该应用程序直到服务器响应?
最佳答案
您可以使用防护措施来保护应用程序的特定路由。守卫有 CanActivate 方法,可以执行异步操作并决定用户是否可以导航到路线。
主要思想是为您的应用程序创建子路由,这些路由全部受“AuthGuard”保护,该路由使用存储的 cookie 检索用户信息并验证用户是否已登录。
您也可以引用下面的代码片段:
import { Injectable } from '@angular/core';
import { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { Observable } from 'rxjs';
@Injectable()
export class AuthGuard implements CanActivate {
constructor(private router: Router, private userDataService: UserDataService ) {}
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
return Observable.fromPromise(this.userDataService.isUserAuthenticated()).map((isUserAuthenticated: boolean) => {
return true;
}).catch( error => {
this.router.navigate(['/login']);
return Observable.of(false);
});
};
}
此处 isUserAuthenticated 方法返回一个 promise ,当我们从服务器收到包含用户详细信息的响应时,该 promise 将被解析/拒绝
关于javascript - 阻止应用程序,直到加载用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39697027/
This question already has answers here: Using Variable for Thread group Ramp up time (3个答案) 3年前关闭。 从
我希望使用 RPyC 为硬件板提供 API 作为服务。该板一次只能满足一个用户的需求。有什么方法可以让 RPyC 强制执行一次只有一个用户可以访问吗? 最佳答案 我不确定这是否有效(或有效),但您可以
如果我想以每秒 10 个请求运行测试。如何让 Jmeter 选择每秒处理该请求数所需的最佳线程数。 我将线程数设置为与每秒请求数相同。 最佳答案 您可以使用恒定吞吐量计时器 click here你只需
我正在尝试进行查询以检查客户表并返回过去 30 天、过去 365 天和所有时间具有特定值的用户数。 所有时间的计数很简单: $stmt = $conn->prepare("SELECT count(i
我是一名优秀的程序员,十分优秀!