Skip to content

Commit 58a5391

Browse files
add: Jwt used for, generating a secure token, generating a secure token1 pages on frontend
1 parent b891909 commit 58a5391

25 files changed

+591
-12
lines changed

frontend/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"@fortawesome/fontawesome-free": "^6.1.1",
2525
"@ng-bootstrap/ng-bootstrap": "^12.1.2",
2626
"@ngneat/transloco": "^4.0.0",
27+
"@popperjs/core": "^2.11.5",
2728
"bootstrap": "^5.1.3",
2829
"rxjs": "~7.5.5",
2930
"tslib": "^2.4.0",

frontend/src/app/app-routing.module.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,18 @@ const routes: Routes = [
1919
path: 'verify',
2020
loadChildren: () => import('./verify/verify.module').then(mod => mod.VerifyModule),
2121
},
22+
{
23+
path: 'jwtUses',
24+
loadChildren: () => import('./jwtuses/jwtuses.module').then(mod => mod.JwtusesModule),
25+
},
26+
{
27+
path: 'generate-token',
28+
loadChildren: () => import('./generate-token/generate-token.module').then(mod => mod.GenerateTokenModule),
29+
},
30+
{
31+
path: 'generate-token1',
32+
loadChildren: () => import('./generate-token1/generate-token1.module').then(mod => mod.GenerateToken1Module),
33+
},
2234
{
2335
path: '**',
2436
redirectTo: 'home',

frontend/src/app/app.component.html

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<li class="nav-item m-2">
2727
<img src="assets/images/icon-checked.svg" class="w-12px" *ngIf="step > 2" />
2828
<img src="assets/images/icon-check.svg" class="w-12px" *ngIf="step === 2" />
29-
<span class="w-12px" *ngIf="step > 1"></span>
29+
<span class="w-12px d-inline-flex" *ngIf="step <= 1"></span>
3030
<span class="ms-2">{{ "app.anatomyJwt" | transloco }}</span>
3131
</li>
3232
<li class="nav-item m-2">
@@ -39,48 +39,54 @@
3939
<img src="assets/images/icon-checked.svg" class="w-12px" *ngIf="step > 4" />
4040
<img src="assets/images/icon-check.svg" class="w-12px" *ngIf="step === 4" />
4141
<div class="w-12px d-inline-flex" *ngIf="step <= 3"></div>
42-
<span class="ms-2">{{ "app.generatingToken" | transloco }}</span>
42+
<span class="ms-2">{{ "app.usedFor" | transloco }}</span>
4343
</li>
4444
<li class="nav-item m-2">
4545
<img src="assets/images/icon-checked.svg" class="w-12px" *ngIf="step > 5" />
4646
<img src="assets/images/icon-check.svg" class="w-12px" *ngIf="step === 5" />
4747
<div class="w-12px d-inline-flex" *ngIf="step <= 4"></div>
48-
<span class="ms-2">{{ "app.tokenAuthenticate" | transloco }}</span>
48+
<span class="ms-2">{{ "app.generatingToken" | transloco }}</span>
4949
</li>
5050
<li class="nav-item m-2">
5151
<img src="assets/images/icon-checked.svg" class="w-12px" *ngIf="step > 6" />
5252
<img src="assets/images/icon-check.svg" class="w-12px" *ngIf="step === 6" />
5353
<div class="w-12px d-inline-flex" *ngIf="step <= 5"></div>
54-
<span class="ms-4">{{ "app.tokenAuthenticate1" | transloco }}</span>
54+
<span class="ms-2">{{ "app.tokenAuthenticate" | transloco }}</span>
5555
</li>
5656
<li class="nav-item m-2">
5757
<img src="assets/images/icon-checked.svg" class="w-12px" *ngIf="step > 7" />
5858
<img src="assets/images/icon-check.svg" class="w-12px" *ngIf="step === 7" />
5959
<div class="w-12px d-inline-flex" *ngIf="step <= 6"></div>
60-
<span class="ms-4">{{ "app.tokenAuthenticate2" | transloco }}</span>
60+
<span class="ms-4">{{ "app.tokenAuthenticate1" | transloco }}</span>
6161
</li>
6262
<li class="nav-item m-2">
6363
<img src="assets/images/icon-checked.svg" class="w-12px" *ngIf="step > 8" />
6464
<img src="assets/images/icon-check.svg" class="w-12px" *ngIf="step === 8" />
6565
<div class="w-12px d-inline-flex" *ngIf="step <= 7"></div>
66-
<span class="ms-4">{{ "app.tokenAuthenticate3" | transloco }}</span>
66+
<span class="ms-4">{{ "app.tokenAuthenticate2" | transloco }}</span>
6767
</li>
6868
<li class="nav-item m-2">
6969
<img src="assets/images/icon-checked.svg" class="w-12px" *ngIf="step > 9" />
7070
<img src="assets/images/icon-check.svg" class="w-12px" *ngIf="step === 9" />
7171
<div class="w-12px d-inline-flex" *ngIf="step <= 8"></div>
72-
<span class="ms-2">{{ "app.bestMethod" | transloco }}</span>
72+
<span class="ms-4">{{ "app.tokenAuthenticate3" | transloco }}</span>
7373
</li>
7474
<li class="nav-item m-2">
7575
<img src="assets/images/icon-checked.svg" class="w-12px" *ngIf="step > 10" />
7676
<img src="assets/images/icon-check.svg" class="w-12px" *ngIf="step === 10" />
7777
<div class="w-12px d-inline-flex" *ngIf="step <= 9"></div>
78-
<span class="ms-2">{{ "app.logout" | transloco }}</span>
78+
<span class="ms-2">{{ "app.bestMethod" | transloco }}</span>
7979
</li>
8080
<li class="nav-item m-2">
8181
<img src="assets/images/icon-checked.svg" class="w-12px" *ngIf="step > 11" />
8282
<img src="assets/images/icon-check.svg" class="w-12px" *ngIf="step === 11" />
8383
<div class="w-12px d-inline-flex" *ngIf="step <= 10"></div>
84+
<span class="ms-2">{{ "app.logout" | transloco }}</span>
85+
</li>
86+
<li class="nav-item m-2">
87+
<img src="assets/images/icon-checked.svg" class="w-12px" *ngIf="step > 12" />
88+
<img src="assets/images/icon-check.svg" class="w-12px" *ngIf="step === 12" />
89+
<div class="w-12px d-inline-flex" *ngIf="step <= 11"></div>
8490
<span class="ms-2">{{ "app.finishTutorial" | transloco }}</span>
8591
</li>
8692
</ul>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { NgModule } from '@angular/core';
2+
import { RouterModule, Routes } from '@angular/router';
3+
import { GenerateTokenComponent } from './generate-token.component';
4+
5+
const routes: Routes = [
6+
{
7+
path: '',
8+
component: GenerateTokenComponent,
9+
},
10+
];
11+
12+
@NgModule({
13+
imports: [RouterModule.forChild(routes)],
14+
exports: [RouterModule]
15+
})
16+
export class GenerateTokenRoutingModule { }
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<h1 class="mb-5">{{ "generate-token.create" | transloco }}</h1>
2+
3+
<hr>
4+
5+
<p class="justify-content-sm-between d-flex algo">
6+
<span>{{ "generate-token.algorithm" | transloco }}</span>
7+
<a target="_blank" href="https://tools.ietf.org/html/rfc7518#section-3">Recommend algorithms</a>
8+
</p>
9+
10+
<p class="rectangle">
11+
HS256
12+
<span></span>
13+
</p>
14+
15+
<p class="font-grey algo">{{"generate-token.data" | transloco}}</p>
16+
17+
<p class="rectangle-1 data1">
18+
{{ "generate-token.data1" | transloco }}
19+
</p>
20+
21+
<p class="font-grey flex-column note">
22+
<span>
23+
{{ "generate-token.note" | transloco }}
24+
</span>
25+
<span>
26+
{{ "generate-token.note1" | transloco }}
27+
</span>
28+
<span>
29+
{{ "generate-token.note2" | transloco }}
30+
</span>
31+
</p>
32+
33+
<div class="row">
34+
<div class="col-auto text-end">
35+
<button type="button" (click)="nextStep()" class="btn btn-warning mt-5" innerHTML="{{ 'generate-token.generateToken' | transloco }}"></button>
36+
</div>
37+
</div>
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
.algo {
2+
font-family: Helvetica;
3+
font-size: 16px;
4+
font-weight: bold;
5+
font-stretch: normal;
6+
font-style: normal;
7+
line-height: 2.5;
8+
letter-spacing: 0.16px;
9+
color: #bfcad9;
10+
11+
a {
12+
font-size: 14px;
13+
font-weight: normal;
14+
font-style: oblique;
15+
line-height: 2;
16+
letter-spacing: 0.14px;
17+
color: #bfcad9;
18+
}
19+
}
20+
21+
.rectangle {
22+
width: 101px;
23+
height: 40px;
24+
padding: 9px 12px 10px;
25+
border-radius: 6px;
26+
border: solid 1px #3a3f51;
27+
background-color: #272f48;
28+
font-family: Helvetica;
29+
font-size: 18px;
30+
font-weight: bold;
31+
font-stretch: normal;
32+
font-style: normal;
33+
color: #7292ff;
34+
display: flex;
35+
align-items: center;
36+
37+
span {
38+
width: 0;
39+
height: 0;
40+
border-left: 7px solid transparent;
41+
border-right: 7px solid transparent;
42+
border-top: 11px solid #7292ff;
43+
margin: 4px 0 4px 8px;
44+
}
45+
}
46+
47+
.rectangle-1{
48+
width: 668px;
49+
height: 110px;
50+
padding: 17px 397px 72px 24px;
51+
border-radius: 6px;
52+
border: solid 1px #3a3f51;
53+
background-color: #272f48;
54+
}
55+
.data1 {
56+
font-family: Helvetica;
57+
font-size: 18px;
58+
font-weight: normal;
59+
font-stretch: normal;
60+
font-style: normal;
61+
}
62+
63+
.note {
64+
font-size: 14px;
65+
font-weight: normal;
66+
font-stretch: normal;
67+
font-style: oblique;
68+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { ComponentFixture, TestBed } from '@angular/core/testing';
2+
3+
import { GenerateTokenComponent } from './generate-token.component';
4+
5+
describe('GenerateTokenComponent', () => {
6+
let component: GenerateTokenComponent;
7+
let fixture: ComponentFixture<GenerateTokenComponent>;
8+
9+
beforeEach(async () => {
10+
await TestBed.configureTestingModule({
11+
declarations: [ GenerateTokenComponent ]
12+
})
13+
.compileComponents();
14+
});
15+
16+
beforeEach(() => {
17+
fixture = TestBed.createComponent(GenerateTokenComponent);
18+
component = fixture.componentInstance;
19+
fixture.detectChanges();
20+
});
21+
22+
it('should create', () => {
23+
expect(component).toBeTruthy();
24+
});
25+
});
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { Component, OnInit } from '@angular/core';
2+
import { Router } from '@angular/router';
3+
import { StepService } from '../shared/services/step.service';
4+
5+
@Component({
6+
selector: 'app-generate-token',
7+
templateUrl: './generate-token.component.html',
8+
styleUrls: ['./generate-token.component.scss']
9+
})
10+
export class GenerateTokenComponent implements OnInit {
11+
12+
constructor(private router: Router,
13+
private stepService: StepService) {
14+
this.stepService.setStep(5)
15+
}
16+
17+
ngOnInit(): void {
18+
}
19+
20+
nextStep(){
21+
this.stepService.setStep(5)
22+
this.router.navigate(['generate-token1'])
23+
}
24+
25+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { NgModule } from '@angular/core';
2+
import { CommonModule } from '@angular/common';
3+
4+
import { GenerateTokenRoutingModule } from './generate-token-routing.module';
5+
import { TranslocoModule } from '@ngneat/transloco';
6+
import { GenerateTokenComponent } from './generate-token.component';
7+
8+
9+
@NgModule({
10+
declarations: [
11+
GenerateTokenComponent
12+
],
13+
imports: [
14+
CommonModule,
15+
TranslocoModule,
16+
GenerateTokenRoutingModule
17+
]
18+
})
19+
export class GenerateTokenModule { }
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { NgModule } from '@angular/core';
2+
import { RouterModule, Routes } from '@angular/router';
3+
import { GenerateToken1Component } from './generate-token1.component';
4+
5+
const routes: Routes = [
6+
{
7+
path: '',
8+
component: GenerateToken1Component,
9+
}
10+
];
11+
12+
@NgModule({
13+
imports: [RouterModule.forChild(routes)],
14+
exports: [RouterModule]
15+
})
16+
export class GenerateToken1RoutingModule { }

0 commit comments

Comments
 (0)