]> juplo.de Git - demos/angular/stored-login/commitdiff
auth service asserts redirect to `login`, if the user is not yet set
authorKai Moritz <kai@juplo.de>
Sun, 7 Sep 2025 00:26:33 +0000 (02:26 +0200)
committerKai Moritz <kai@juplo.de>
Mon, 15 Sep 2025 20:42:44 +0000 (22:42 +0200)
src/app/app.component.ts
src/app/services/auth.service.ts

index 61a67e84cb1f9e1780ae8921e548045afec8e3fe..a7422aab3f3ace52be94870152230e9d35e96cc6 100644 (file)
@@ -1,5 +1,6 @@
-import { Component } from '@angular/core';
+import { Component, inject } from '@angular/core';
 import { RouterOutlet } from '@angular/router';
+import { AuthService } from './services/auth.service';
 
 @Component({
   selector: 'app-root',
@@ -8,5 +9,12 @@ import { RouterOutlet } from '@angular/router';
   styleUrl: './app.component.less'
 })
 export class AppComponent {
+  private authService = inject(AuthService);
+
   title = 'stored-login';
+
+  ngOnInit(): void
+  {
+    this.authService.assertUserIsKnown();
+  }
 }
index 0ca20a435b89d9eab367cce5a60e4ee4b4d97701..dfd28581fe240e600a7df4ce8b65a936f973dfa6 100644 (file)
@@ -1,13 +1,22 @@
-import { Injectable } from '@angular/core';
+import { inject, Injectable } from '@angular/core';
+import { Router } from "@angular/router";
 import { Observable, of } from 'rxjs';
 
 @Injectable({
   providedIn: 'root'
 })
 export class AuthService {
+  private router = inject(Router);
+
   private username : string|undefined;
 
   login(username : string, password : string) : Observable<string> {
     return of(username);
   }
+
+  assertUserIsKnown(): void {
+    if(!this.username) {
+      this.router.navigate(['login']);
+    }
+  }
 }