Q
角度验证2
0
A
回答
1
您应该创建一个知道,如果用户登录或不服务:
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
@Injectable()
export class LoginService {
private loggedIn: boolean;
constructor(private router: Router) {
this.loggedIn = false;
}
login() {
// mechanism to login
this.loggedIn = true;
}
logout() {
// mechanism to logout
this.loggedIn = false;
}
isLoggedIn() {
return this.loggedIn;
}
}
如果你想保护你的路由器的一些组件,你应该建立一个这样的AuthGuard:
import { Injectable } from '@angular/core';
import { Router, CanActivate } from '@angular/router';
import { LoginService } from './login.service';
@Injectable()
export class AuthGuard implements CanActivate {
constructor(private loginService: LoginService, private router: Router) { }
canActivate() {
if (this.loginService.isLoggedIn() !== true) {
this.router.navigate(['/login']);
return false;
} else {
return true;
}
}
}
如果用户登录或不登录,警卫调用loginService并获取信息。如果用户没有登录,警卫会通知路由器导航到login
页面。
您需要使用canActivate
(see docs)使用保护在你的路由器CONFIGS:
{
path: 'app',
canActivate: [AuthGuard],
component: ProtectedComponent,
}
这仅仅是验证一个简单的例子有角2
0
我有什么是一种服务,持有的应用程序的状态。
我创建的进一步身份验证是与用户,密码登录。来自服务器的响应返回一个令牌。我存储令牌,userId是应用程序状态。然后,我在每个使用我需要关于用户信息的组件中都有这项服务。
这种状态服务的一个例子。 https://github.com/AngularClass/angular2-webpack-starter/blob/master/src/app/app.service.ts
我使用这个令牌来验证用户对服务器的进一步请求。
问候
相关问题
- 1. 角度验证
- 2. 角度验证
- 3. 验证动态角度2表格
- 4. 角2:长度验证工作不
- 5. 角度2中的表单验证
- 6. 表行中的角度2验证
- 7. 如何在角度验证2
- 8. 角度2的数字验证
- 9. 以角度更改密码验证2
- 10. 角2组验证
- 11. 角度证书验证
- 12. 角度表单验证问题 - 角度验证没有发生
- 13. 角2需要验证
- 14. 角度定制验证
- 15. 在提交角度验证
- 16. 角度验证$解析器
- 17. 对角度的验证
- 18. 角度验证问题
- 19. 角度验证表格
- 20. 设计角度验证
- 21. 角度的表情验证
- 22. .Net Core Api +角度验证
- 23. 角度验证问题
- 24. 角度验证指令
- 25. 快速角度验证
- 26. 如何验证角度js
- 27. 角度表单验证
- 28. 角度验证错误
- 29. 角度验证问题
- 30. 2经度C#验证