Autentifikácia v Ionic (ver.5) aplikácii cez REST API (5.časť) - prístup na stránky pomocou guard
3498 단어 ionic
Mám vytvorenú Ionic aplikáciu s funkcionalitou registrácie nového používateľa (popísané v ), prihlásenia existujúceho používateľa (popísané v ) a odhlásenia prihláseného používateľa (popísané vo ).
Teraz si vytvorím v tejto aplikácii nejaké ďalšie stránky, na ktorých prístup potom použijem "guard".
Vytvoriť si dve nové stránky príkazmi:
ionic generate page pages/profile
ionic generate page pages/portfolios
Tieto stránky ponechám prázdne (pre otestovanie to stačí).
Vytvoriť si teraz požadovaný "가드", príkazom:
ionic generate guard guard/auth
pri vytváraní potvrdiť implementovaný 인터페이스 유형:
CanActivate
Sú vytvorené v samostatnom adresári "guard"dva súbory:
V súbore "auth.guard.ts"doplniť/upraviť takto:
import { Injectable } from '@angular/core';
RouterStateSnapshot, UrlTree } from '@angular/router';
import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, Router } from '@angular/router';
import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class AuthGuard implements CanActivate {
constructor(
private router: Router,
) {}
canActivate( next: ActivatedRouteSnapshot, state: RouterStateSnapshot ):
Observable<boolean> | Promise<boolean> | boolean {
// const currentUser = this.authService.isLoggedIn;
const currentUser = localStorage.getItem('token');
if (currentUser) {
// ak je pouzivatel autorizovany, prihlaseny:
return true;
}
// ak nie je pouzivatel prihlaseny, presmeruje na "home":
this.router.navigate(['/home']);
return false;
}
}
na overenie, či je používateľ prihlásený načítavam hodnotu "token"z lokálnej Storage aplikácie.
A Nakoniec ešte upraviť/doplniť v súbore "app-routing.module.ts"kód na prístup k jednotlivým stránkam:
...
{
path: 'profile',
loadChildren: () => import('./pages/profile/profile.module').then( m => m.ProfilePageModule), canActivate: [AuthGuard]
},
{
path: 'portfolios',
loadChildren: () => import('./pages/portfolios/portfolios.module').then( m => m.PortfoliosPageModule)
},
...
tj.pre stránku, ktorú chcem chrániť pre neautentifikovaným prístupom doplniť "canActivate: [AuthGuard]".
Ak teraz spustím túto Ionic aplikáciu a chcem ísť na stránku:
http://localhost:8100/profile
pokiaľ nie som prihlásený používateľ (akýkoľvek) tak sa na ňu nedostanem a presmeruje ma na default-nú stránku aplikácie.
Zatiaľ čo prístup na stránku:
http://localhost:8100/portfolios
nie je chránený a dostane sa na ňu aj neprihlásený (anonymný) používateľ aplikácie.
...
Reference
이 문제에 관하여(Autentifikácia v Ionic (ver.5) aplikácii cez REST API (5.časť) - prístup na stránky pomocou guard), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jurajchovan/autentifikacia-v-ionic-ver5-aplikacii-cez-rest-api-5cast-pristup-na-stranky-pomocou-guard-56b5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)