CREACION DE LOGIN EN ANGULAR MATERIAL

$ ng g c modules/sesión/components/login –spec=false
login.components.html
<ng4-loading-spinner [timeout]="300000"></ng4-loading-spinner>
<mat-card class="login-card">
  <mat-card-header>
    <div mat-card-avatar class="login-card-header-image"></div>
  </mat-card-header>
  <mat-card-content>
    <p>Ingresa a tu cuenta</p>
    <form [formGroup]="loginForm">
      <mat-grid-list cols="12" rowHeight="50px">
        <mat-grid-tile [responsiveRows]="{xs:12, sm: 12,md:12, lg:12,xl:12}">
          <mat-form-field>
            <input matInput formControlName="usuario" type="text" id="usuario" placeholder="Inserte su ID de usuario"
              [ngClass]="{'is-invalid': formErrors.usuario}" (keyup.enter)="autenticar()">
          </mat-form-field>
        </mat-grid-tile>
        <mat-grid-tile [responsiveRows]="{xs:12, sm: 12,md:12, lg:12,xl:12}">
          <mat-form-field>
            <input matInput formControlName="contrasenia" type="password" id="contrasenia"
              placeholder="Inserte su contraseña" [ngClass]="{'is-invalid': formErrors.contrasenia}"
              (keyup.enter)="autenticar()">
          </mat-form-field>
        </mat-grid-tile>
        <mat-grid-tile [responsiveRows]="{xs:12, sm: 12, md:12, lg:12, xl:12}">
          <mat-checkbox formControlName="recordar">Recordar</mat-checkbox>
        </mat-grid-tile>
      </mat-grid-list>
      <mat-grid-list cols="12" rowHeight="25px" *ngIf="mostrar">
        <mat-grid-tile [responsiveRows]="{xs:12, sm: 12, md:12, lg:12, xl:12}" class="alerta">
          Usuario o contraseña incorrectos
        </mat-grid-tile>
      </mat-grid-list>
      <mat-grid-list cols="12" rowHeight="50px">
        <mat-grid-tile [responsiveRows]="{xs:12, sm: 12, md:12, lg:12, xl:12}">
          <button mat-raised-button color="primary" (click)="autenticar()">Ingresar</button>
        </mat-grid-tile>
      </mat-grid-list>
    </form>
  </mat-card-content>
</mat-card>

login.components.css
.login-card {
  margin10% auto 0%;
  width300px;
  max-width300px;
  text-aligncenter;
  form {
    mat-grid-tile {
      button {
        width90%;
      }
    }
  }
}

.login-card-header-image {
  margin0px auto 10px;
  background-imageurl("../../../../../assets/images/icons/icono-perficon.png");
  background-sizecover;
}

mat-checkbox {
  padding-left10px;
}

.alerta > ::ng-deep .mat-figure {
  colorred;
  justify-contentcenter !important;
  font-weightbold;
}

login.components.ts
import { ComponentOnInitInject } from '@angular/core';
import { Usuario } from 'src/app/model/usuario.model';
import { FormGroupFormBuilderValidators } from '@angular/forms';
import { Router } from '@angular/router';
import { Persona } from 'src/app/model/persona.model';
import { UsuarioService } from 'src/app/services/usuario.service';
import { ValidationService } from 'src/app/services/validation.service';
import { Cookie } from 'ng2-cookies/ng2-cookies';
import { Ng4LoadingSpinnerService } from 'ng4-loading-spinner';

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.scss']
})
export class LoginComponent implements OnInit {
  usuarioUsuario;
  personaPersona;
  mostrarboolean = false;

  loginFormFormGroup;
  messages = {
    'usuario': {
      'required': 'El campo es obligatorio'
    },
    'contrasenia': {
      'required': 'El campo es obligatorio'
    }
  };

  formErrors = {
    'usuario': '',
    'contrasenia': ''
  };

  constructor(private fbFormBuilderprivate routerRouter,
    private spinnerServiceNg4LoadingSpinnerService,
    @Inject(UsuarioServiceprivate userUsuarioService,
    @Inject(ValidationServiceprivate validationServiceValidationService) { }

  ngOnInit() {
    this.spinnerService.show();
    this.loginForm = this.fb.group({
      usuario: ['', [Validators.required]],
      contrasenia: ['', [Validators.required]],
      recordar: ['', []]
    });

    this.validateAutenticacion();
  }

  validateAutenticacion(): void {
    let recordar = Cookie.get('recordar');
    if (recordar == 'true') {
      this.loginForm.get('recordar').setValue(true);
      let uUsuario = Cookie.get('idUsuario');
      let uPassword = Cookie.get('passUsuario');
      this.validarCredenciales(uUsuariouPassword);
    } else {
      this.spinnerService.hide();
    }
  }

  autenticar() {
    if (this.loginForm.valid) {
      let uuser = this.loginForm.get('usuario').value;
      let upass = this.loginForm.get('contrasenia').value;
      this.validarCredenciales(uuserupass);
    } else {
      this.validationService.getValidationErrors(this.loginFormthis.messagesthis.formErrorstrue);
    }
  }

  validarCredenciales(uuserstringupassstring): void {
    if (uuser == 'admin' && upass == 'Diranach1') {
      this.user.setIdUsuario = 1;
      this.user.setUsuario = this.loginForm.get('usuario').value;
      this.user.setNombres = 'AMILCAR';
      this.user.setApePaterno = 'PEREZ';
      this.user.setApeMaterno = 'CUELLAR';
      this.user.setEmail = 'nbaez001@gmail.com';
      this.user.setPerfil = 'INFORMATICA';
      this.user.setAbrevPerfil = 'INF.';

      if (this.loginForm.get('recordar').value) {
        // var expireDate = new Date().getTime() + (1000 * 5);
        Cookie.set("idUsuario"uuser365);
        Cookie.set("passUsuario"upass365);
        Cookie.set("recordar""true"365);
      }
      this.spinnerService.hide();
      this.router.navigate(['/intranet/home']);
    } else {
      this.spinnerService.hide();
      this.mostrar = true;
      setTimeout(() => {
        this.mostrar = false;
      }, 8000);
    }
  }
}