This commit is contained in:
bitbucket 2023-09-04 15:50:47 +05:30
commit 11cd0e8ee5
8 changed files with 89 additions and 74 deletions

7
package-lock.json generated
View File

@ -42577,6 +42577,7 @@
"set-immediate-shim": "~1.0.1" "set-immediate-shim": "~1.0.1"
} }
}, },
<<<<<<< HEAD
"jwa": { "jwa": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz",
@ -42610,6 +42611,12 @@
"jwa": "^2.0.0", "jwa": "^2.0.0",
"safe-buffer": "^5.0.1" "safe-buffer": "^5.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=="
>>>>>>> cfc62c68d51bd7d7b66b0dc0950899c63d920935
}, },
"karma": { "karma": {
"version": "6.3.19", "version": "6.3.19",

View File

@ -58,6 +58,7 @@
"html2pdf.js": "^0.10.1", "html2pdf.js": "^0.10.1",
"intl": "1.2.5", "intl": "1.2.5",
"ionicons": "2.0.1", "ionicons": "2.0.1",
"jwt-decode": "^3.1.2",
"leaflet": "1.2.0", "leaflet": "1.2.0",
"nebular-icons": "1.1.0", "nebular-icons": "1.1.0",
"ng2-ckeditor": "~1.2.9", "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 { AuthGuard } from './pages/_guard/auth.guard';
import { ForgotPasswordComponent } from './pages/auth/forgot-password/forgot-password.component'; import { ForgotPasswordComponent } from './pages/auth/forgot-password/forgot-password.component';
import { ResetPasswordComponent } from './pages/auth/reset-password/reset-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) console.log(token)
let param; let param;
if(token != '' && token != undefined && token != null){ if(token != '' && token != undefined && token != null){
@ -30,7 +35,7 @@ export const routes: Routes = [
}, },
{ {
path: 'pages', path: 'pages',
canActivateChild:[AuthGuard], canActivate:[AuthGuard],
loadChildren: () => import('./pages/pages.module') loadChildren: () => import('./pages/pages.module')
.then(m => m.PagesModule), .then(m => m.PagesModule),
}, },

View File

@ -1,94 +1,93 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router'; import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router';
import { Observable , of } from 'rxjs'; import { Observable , of } from 'rxjs';
import jwt_decode from 'jwt-decode';
// import { CognitoService } from '../AwsService/cognito.service'; // import { CognitoService } from '../AwsService/cognito.service';
@Injectable() @Injectable()
export class AuthGuard implements CanActivate, CanActivateChild { export class AuthGuard implements CanActivate, CanActivateChild {
token:any =[]; 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) { canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
if(this.token != '' && this.token != undefined && this.token != null){
const token = localStorage.getItem('user_token');
if(token != '' && token != undefined && token != null){
// this.checkToken();
return true return true
}else{ }else{
// alert("else"); if(this.token != '' && this.token != undefined && this.token != null)
// this.router.navigate(['auth/login']); {
this.router.navigate(['/auth/login']) return true
return false;
}
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 { canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
const token = localStorage.getItem('user_token'); const token = localStorage.getItem('user_token');
console.log(token) // console.log(this.isTokenExpired());
if(token != '' && token != undefined && token != null){
// this.checkToken(); if(this.token != '' && this.token != undefined && this.token != null)
{
if (this.isTokenExpired()) {
return true return true
}else{ }
// setTimeout(() => { else{
this.router.navigate(['/auth/login']); console.log('exp');
return false; localStorage.removeItem('token');
// },1000); 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() { logout() {
localStorage.removeItem('token'); localStorage.removeItem('token');
localStorage.clear(); localStorage.clear();

View File

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

View File

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

View File

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

View File

@ -12,6 +12,7 @@ export const environment = {
// apiEndpoint:'https://dev.venbait.in/vnms/api/', // apiEndpoint:'https://dev.venbait.in/vnms/api/',
apiEndpoint:'http://localhost:8081/api/', apiEndpoint:'http://localhost:8081/api/',
// apiEndpoint:'http://192.168.1.17:8081/api/', // apiEndpoint:'http://192.168.1.17:8081/api/',
mailUrl:'', mailUrl:'',
production: false, production: false,
}; };