# CICADA

### File

`src/app/_guards/auth.guard.ts`

### Description

Auth guard implementation. Dictates access to routes depending on the authentication status.

### Index

###### Methods

- canActivate

### Constructor

`constructor(router: Router)`
Defined in src/app/_guards/auth.guard.ts:21

Instantiates the auth guard class.

Parameters :

Name | Type | Optional | Description

router

`Router`

No

`

- A service that provides navigation among views and URL manipulation capabilities.

`

### Methods

canActivate
`canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot)`
Defined in src/app/_guards/auth.guard.ts:38

Returns whether navigation to a specific route is acceptable. Checks if the user has uploaded a private key.

Parameters :

Name | Type | Optional | Description

route

`ActivatedRouteSnapshot`

No

- Contains the information about a route associated with a component loaded in an outlet at a particular moment in time. ActivatedRouteSnapshot can also be used to traverse the router state tree.

state

`RouterStateSnapshot`

No

- Represents the state of the router at a moment in time.

Returns : `Observable | Promise | boolean | UrlTree`

true - If there is an active private key in the user's localStorage.

    import { Injectable } from '@angular/core';
    import {
      ActivatedRouteSnapshot,
      CanActivate,
      Router,
      RouterStateSnapshot,
      UrlTree,
    } from '@angular/router';

    // Third party imports
    import { Observable } from 'rxjs';

    /**
     * Auth guard implementation.
     * Dictates access to routes depending on the authentication status.
     */
    @Injectable({
      providedIn: 'root',
    })
    export class AuthGuard implements CanActivate {
      /**
       * Instantiates the auth guard class.
       *
       * @param router - A service that provides navigation among views and URL manipulation capabilities.
       */
      constructor(private router: Router) {}

      /**
       * Returns whether navigation to a specific route is acceptable.
       * Checks if the user has uploaded a private key.
       *
       * @param route - Contains the information about a route associated with a component loaded in an outlet at a particular moment in time.
       * ActivatedRouteSnapshot can also be used to traverse the router state tree.
       * @param state - Represents the state of the router at a moment in time.
       * @returns true - If there is an active private key in the user's localStorage.
       */
      canActivate(
        route: ActivatedRouteSnapshot,
        state: RouterStateSnapshot
      ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
        if (localStorage.getItem(btoa('CICADA_PRIVATE_KEY'))) {
          return true;
        }
        this.router.navigate(['/auth']);
        return false;
      }
    }

# result-matching ""

# No results matching ""