Skip to content

Instantly share code, notes, and snippets.

@MaxySpark
Last active May 11, 2019 17:14
Show Gist options
  • Select an option

  • Save MaxySpark/61aaff9e587dbb4d039673dea32036a7 to your computer and use it in GitHub Desktop.

Select an option

Save MaxySpark/61aaff9e587dbb4d039673dea32036a7 to your computer and use it in GitHub Desktop.
angular authguard
import { Injectable } from '@angular/core';
import { CanActivate, Router } from '@angular/router';
import { CookieService } from 'ngx-cookie-service';
@Injectable()
export class AuthGuardService implements CanActivate {
constructor(
public cookieService: CookieService,
public router: Router
) { }
canActivate(): boolean {
const token = this.cookieService.get('AuthToken');
if (token === '') {
this.router.navigate(['auth']);
return false;
}
let payload_buff = token.split('.')[1];
payload_buff = atob(payload_buff);
const payload = JSON.parse(payload_buff);
if (token !== '' && (payload.exp > (Date.now() / 1000)) && payload.iss === 'MaxySpark') {
return true;
}
this.router.navigate(['auth']);
return false;
}
}
import { Routes, CanActivate } from '@angular/router';
import { TestComponent } from './test.component';
import { AuthGuardService as AuthGuard } from '../auth/auth-guard.service';
export const testRoutes: Routes = [
{
path: '',
component: TestComponent,
canActivate: [AuthGuard]
}
];
@MaxySpark
Copy link
Copy Markdown
Author

Dependency npm i -s ngx-cookie-service

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment