This commit is contained in:
suseendhiran17 2023-08-07 11:33:51 +05:30
parent 5441e4bf17
commit 1c30658540
8 changed files with 88 additions and 75 deletions

5
package-lock.json generated
View File

@ -12965,6 +12965,11 @@
"set-immediate-shim": "~1.0.1"
}
},
"jwt-decode": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz",
"integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="
},
"karma": {
"version": "6.3.19",
"resolved": "https://registry.npmjs.org/karma/-/karma-6.3.19.tgz",

View File

@ -57,6 +57,7 @@
"html2pdf.js": "^0.10.1",
"intl": "1.2.5",
"ionicons": "2.0.1",
"jwt-decode": "^3.1.2",
"leaflet": "1.2.0",
"nebular-icons": "1.1.0",
"ng2-ckeditor": "~1.2.9",

View File

@ -12,9 +12,14 @@ import { LoginComponent } from '../app/pages/auth/login/login.component';
import { AuthGuard } from './pages/_guard/auth.guard';
import { ForgotPasswordComponent } from './pages/auth/forgot-password/forgot-password.component';
import { ResetPasswordComponent } from './pages/auth/reset-password/reset-password.component';
import { Injectable } from '@angular/core';
import jwt_decode from 'jwt-decode';
const token = localStorage.getItem('user_token');
const token = localStorage.getItem('user_token');
console.log(token)
let param;
if(token != '' && token != undefined && token != null){
@ -30,7 +35,7 @@ export const routes: Routes = [
},
{
path: 'pages',
canActivateChild:[AuthGuard],
canActivate:[AuthGuard],
loadChildren: () => import('./pages/pages.module')
.then(m => m.PagesModule),
},

View File

@ -1,94 +1,93 @@
import { Injectable } from '@angular/core';
import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router';
import { Observable , of } from 'rxjs';
import jwt_decode from 'jwt-decode';
// import { CognitoService } from '../AwsService/cognito.service';
@Injectable()
export class AuthGuard implements CanActivate, CanActivateChild {
token:any =[];
constructor(private router: Router) { }
constructor(private router: Router) { this.token = localStorage.getItem('user_token'); }
// setToken(token: string): void {
// localStorage.setItem(this.token, token);
// }
// getToken(): string | null {
// return localStorage.getItem(this.token);
// }
clearSession(): void {
localStorage.removeItem(this.token);
}
isTokenExpired(): boolean {
this.token = localStorage.getItem('user_token');
const token = this.token;
if (token) {
const decoded: any = jwt_decode(token);
const expirationDate = new Date(0);
expirationDate.setUTCSeconds(decoded.exp);
// Get the current datetime
const currentDatetime = new Date();
const fiveMinutesBeforeExpiration = new Date(expirationDate);
console.log(currentDatetime);
console.log(fiveMinutesBeforeExpiration);
if (currentDatetime <= fiveMinutesBeforeExpiration) {
return true;
} else {
return false;
}
}
return true;
}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
const token = localStorage.getItem('user_token');
if(token != '' && token != undefined && token != null){
// this.checkToken();
if(this.token != '' && this.token != undefined && this.token != null){
return true
}else{
// alert("else");
// this.router.navigate(['auth/login']);
this.router.navigate(['/auth/login'])
return false;
if(this.token != '' && this.token != undefined && this.token != null)
{
return true
}
else
{
console.log('exp');
this.clearSession();
this.router.navigate(['/auth/login'])
return false;
}
}
// if (this.shared.getToken()) {
// alert("if");
// // this.router.navigate(['']);
// return true
// } else {
// alert("else");
// this.router.navigate(['/login']);
// return false;
// }
}
canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
const token = localStorage.getItem('user_token');
console.log(token)
if(token != '' && token != undefined && token != null){
// this.checkToken();
// console.log(this.isTokenExpired());
if(this.token != '' && this.token != undefined && this.token != null)
{
if (this.isTokenExpired()) {
return true
}else{
// setTimeout(() => {
this.router.navigate(['/auth/login']);
return false;
// },1000);
}
else{
console.log('exp');
localStorage.removeItem('token');
localStorage.clear()
this.router.navigate(['/auth/login']);
return false;
}
}
else
{
return true;
}
// if (this.shared.getCurrentUser() != null && this.shared.getToken()) {
// // alert("if");
// return true;
// } else {
// // alert("else");
// setTimeout(() => {
// this.router.navigate(['authentication/login']);
// return false;
// },1000);
// }
}
// public getToken(): string {
// return localStorage.getItem('token');
// }
// public logOut() {
// localStorage.clear();
// if(localStorage.getItem('token') === null){
// this.router.navigate(['/login']);
// }
// }
checkToken() {
const storedToken = localStorage.getItem('token');
if (storedToken) {
try {
// this.token = jwt.verify(storedToken, 'vnms2023feb');
// this.isAuthenticated = true;
} catch (err) {
console.error('Invalid token:', err);
//this.isAuthenticated = false;
this.logout();
}
} else {
// this.isAuthenticated = false;
}
}
logout() {
localStorage.removeItem('token');
localStorage.clear();

View File

@ -189,7 +189,7 @@
<div style="display: flex; align-items: center;">
<span class="checkTxt" >
{{row.item.updatedAt | date :'dd/MM/yy'}}
{{row.item.updatedAt | date :'dd/MM/yy hh:mm:ss'}}
</span>
</div>

View File

@ -19,7 +19,7 @@ import { ReturnSheetComponent } from './return-sheet/return-sheet.component';
const routes: Routes = [{
path: '',
canActivateChild:[AuthGuard],
component: PagesComponent,
children: [
{

View File

@ -50,6 +50,7 @@ import { EmailComponent } from './email/email.component';
import { DriverySheetComponent } from './drivery-sheet/drivery-sheet.component';
import { AddOrderComponent } from './order/add-order/add-order.component';
import { ReturnSheetComponent } from './return-sheet/return-sheet.component';
import { AuthGuard } from './_guard/auth.guard';
@NgModule({
imports: [
PagesRoutingModule,
@ -98,6 +99,7 @@ import { ReturnSheetComponent } from './return-sheet/return-sheet.component';
MixedFormComponent,
AuthComponent,ForgotPasswordComponent, OtpComponent,ResetPasswordComponent, ViewDetailsComponent, SummaryListComponent, SummaryDetailsComponent, EmailComponent, DriverySheetComponent, AddOrderComponent, ReturnSheetComponent,
],
providers:[AuthGuard],
schemas: [CUSTOM_ELEMENTS_SCHEMA,NO_ERRORS_SCHEMA],
})
export class PagesModule {

View File

@ -9,7 +9,8 @@
// The list of which env maps to which file can be found in `.angular-cli.json`.
export const environment = {
apiEndpoint:'https://dev.venbait.in/vnms/api/',
// apiEndpoint:'https://dev.venbait.in/vnms/api/',
apiEndpoint:'http://localhost:8081/api/',
// apiEndpoint:'http://192.168.1.17:8081/api/',
mailUrl:'',
production: false,