aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSyndamia <kamen.d.mladenov@protonmail.com>2021-01-14 11:38:24 +0200
committerSyndamia <kamen.d.mladenov@protonmail.com>2021-01-14 11:38:24 +0200
commit1db89c891803239f083ed9ee0f274aeeac1f384b (patch)
tree44d85d0b82d6429af8e71938554a5f737bb066de /src
parente20e89e83c73864d5dc3615733836a1f1d1565c6 (diff)
downloadDevHive-1db89c891803239f083ed9ee0f274aeeac1f384b.tar
DevHive-1db89c891803239f083ed9ee0f274aeeac1f384b.tar.gz
DevHive-1db89c891803239f083ed9ee0f274aeeac1f384b.zip
Login stores JWT in session storage, feed checks (needs to be improved) for that token and redirects to login
Diffstat (limited to 'src')
-rw-r--r--src/DevHive.Angular/src/app/components/feed/feed.component.ts11
-rw-r--r--src/DevHive.Angular/src/app/components/login/login.component.ts21
2 files changed, 22 insertions, 10 deletions
diff --git a/src/DevHive.Angular/src/app/components/feed/feed.component.ts b/src/DevHive.Angular/src/app/components/feed/feed.component.ts
index fa2575f..fcf0af4 100644
--- a/src/DevHive.Angular/src/app/components/feed/feed.component.ts
+++ b/src/DevHive.Angular/src/app/components/feed/feed.component.ts
@@ -1,5 +1,6 @@
import { Component, OnInit } from '@angular/core';
import { Title } from '@angular/platform-browser';
+import { Router } from '@angular/router';
import { FeedService } from 'src/app/services/feed.service';
import { PostComponent } from '../post/post.component';
@@ -12,7 +13,7 @@ export class FeedComponent implements OnInit {
private _title = 'Feed';
public posts: PostComponent[];
- constructor(private titleService: Title, private service: FeedService) {
+ constructor(private titleService: Title, private service: FeedService, private router: Router) {
this.titleService.setTitle(this._title);
}
@@ -22,6 +23,12 @@ export class FeedComponent implements OnInit {
new PostComponent(),
new PostComponent(),
new PostComponent(),
- ]
+ ];
+
+ if (sessionStorage.getItem('UserCred')) { /* TODO: improve token validation */
+ /* Make use of the JWT, will be implemented later */
+ } else {
+ this.router.navigate(['/login']);
+ }
}
}
diff --git a/src/DevHive.Angular/src/app/components/login/login.component.ts b/src/DevHive.Angular/src/app/components/login/login.component.ts
index fb90837..2048c73 100644
--- a/src/DevHive.Angular/src/app/components/login/login.component.ts
+++ b/src/DevHive.Angular/src/app/components/login/login.component.ts
@@ -1,5 +1,6 @@
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
+import { Router } from '@angular/router';
import { Title } from '@angular/platform-browser';
@Component({
@@ -12,7 +13,7 @@ export class LoginComponent implements OnInit {
private _title = 'Login';
- constructor(private titleService: Title, private fb: FormBuilder) {
+ constructor(private titleService: Title, private fb: FormBuilder, private router: Router) {
titleService.setTitle(this._title);
}
@@ -29,16 +30,20 @@ export class LoginComponent implements OnInit {
});
}
- onSubmit(): void {
- fetch('http://localhost:5000/api/User/login', {
+ async onSubmit(): Promise<void> {
+ const response = await fetch('http://localhost:5000/api/User/login', {
method: 'POST',
- body: `{
- "UserName": "${this.loginUserFormGroup.get('username')?.value}",
- "Password": "${this.loginUserFormGroup.get('password')?.value}"
- }`,
+ body: JSON.stringify({
+ UserName: this.loginUserFormGroup.get('username')?.value,
+ Password: this.loginUserFormGroup.get('password')?.value
+ }),
headers: {
'Content-Type': 'application/json'
}
- }).then(response => response.json()).then(data => { console.log(data); });
+ });
+ const userCred: string = await response.json();
+
+ sessionStorage.setItem('UserCred', JSON.stringify(userCred));
+ this.router.navigate(['/']);
}
}