Store auth info in local storage

This commit is contained in:
Norbi Peti 2022-01-12 23:50:02 +01:00
parent bd07e1a306
commit dd375b6948
No known key found for this signature in database
GPG key ID: DBA4C4549A927E56
3 changed files with 19 additions and 8 deletions

View file

@ -21,7 +21,7 @@ export class AppComponent implements OnInit {
);
menu: MenuItem[] = [
{path: 'subjects', title: 'Tárgyak', requiredRole: 'admin'}
{path: 'users', title: 'Felhasználók', requiredRole: 'admin'}
];
constructor(private breakpointObserver: BreakpointObserver, public loginService: LoginService, private api: ApiService,

View file

@ -1,7 +1,7 @@
import {Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {environment} from '../../environments/environment';
import {User} from '../model/user.model';
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { environment } from '../../environments/environment';
import { User } from '../model/user.model';
@Injectable({
providedIn: 'root'
@ -12,6 +12,8 @@ export class LoginService {
user: User;
constructor(private http: HttpClient) {
this.token = window.localStorage.getItem('token');
this.user = JSON.parse(window.localStorage.getItem('user'));
}
async createUser(email: string, password: string, name: string): Promise<void> {
@ -20,9 +22,14 @@ export class LoginService {
async login(email: string, password: string): Promise<boolean> {
try {
const resp: any = await this.http.post(environment.backendUrl + '/users/login', {email, password}).toPromise();
const resp = await this.http.post<{ token: string, user: User }>(environment.backendUrl + '/users/login', {
email,
password
}).toPromise();
this.token = resp.token;
this.user = resp.user;
window.localStorage.setItem('token', resp.token);
window.localStorage.setItem('user', JSON.stringify(resp.user));
return true;
} catch (e) {
if (e.status === 401 || e.status === 422) {

View file

@ -1,13 +1,17 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { UserListComponent } from './user-list/user-list.component';
import { RouterModule, Routes } from '@angular/router';
const routes: Routes = [
{path: '', component: UserListComponent}
];
@NgModule({
declarations: [UserListComponent],
imports: [
CommonModule
CommonModule,
RouterModule.forChild(routes)
]
})
export class UsersModule { }