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#驗證