Store auth info in local storage
This commit is contained in:
parent
bd07e1a306
commit
dd375b6948
3 changed files with 19 additions and 8 deletions
|
@ -21,7 +21,7 @@ export class AppComponent implements OnInit {
|
||||||
);
|
);
|
||||||
|
|
||||||
menu: MenuItem[] = [
|
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,
|
constructor(private breakpointObserver: BreakpointObserver, public loginService: LoginService, private api: ApiService,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import {Injectable} from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import {HttpClient} from '@angular/common/http';
|
import { HttpClient } from '@angular/common/http';
|
||||||
import {environment} from '../../environments/environment';
|
import { environment } from '../../environments/environment';
|
||||||
import {User} from '../model/user.model';
|
import { User } from '../model/user.model';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
|
@ -12,6 +12,8 @@ export class LoginService {
|
||||||
user: User;
|
user: User;
|
||||||
|
|
||||||
constructor(private http: HttpClient) {
|
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> {
|
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> {
|
async login(email: string, password: string): Promise<boolean> {
|
||||||
try {
|
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.token = resp.token;
|
||||||
this.user = resp.user;
|
this.user = resp.user;
|
||||||
|
window.localStorage.setItem('token', resp.token);
|
||||||
|
window.localStorage.setItem('user', JSON.stringify(resp.user));
|
||||||
return true;
|
return true;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (e.status === 401 || e.status === 422) {
|
if (e.status === 401 || e.status === 422) {
|
||||||
|
|
|
@ -1,13 +1,17 @@
|
||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { UserListComponent } from './user-list/user-list.component';
|
import { UserListComponent } from './user-list/user-list.component';
|
||||||
|
import { RouterModule, Routes } from '@angular/router';
|
||||||
|
|
||||||
|
const routes: Routes = [
|
||||||
|
{path: '', component: UserListComponent}
|
||||||
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [UserListComponent],
|
declarations: [UserListComponent],
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule
|
CommonModule,
|
||||||
|
RouterModule.forChild(routes)
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class UsersModule { }
|
export class UsersModule { }
|
||||||
|
|
Loading…
Reference in a new issue