Files
we_bstly-web/src/app/pages/password/password.component.ts
T
Lurkars 997a512e00 update
2021-01-12 19:29:00 +01:00

55 lines
1.4 KiB
TypeScript

import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { AuthService } from './../../services/auth.service';
import { Router } from '@angular/router';
var openpgp = require('openpgp');
@Component({
selector: 'app-password',
templateUrl: './password.component.html',
styleUrls: ['./password.component.scss']
})
export class PasswordComponent implements OnInit {
model: any = {};
public working: boolean;
form: FormGroup;
constructor(private formBuilder: FormBuilder, private authService: AuthService, private router: Router) { }
ngOnInit(): void {
this.form = this.formBuilder.group({
username: ['', Validators.required],
privateKey: ['']
});
}
async passwordRequest() {
this.working = true;
const { keys: [privateKey] } = await openpgp.key.readArmored(this.model.privateKey);
const model = {
username: this.model.username
}
this.authService.passwordRequest(this.model.username).subscribe(async response => {
if (privateKey) {
const message = await openpgp.message.readArmored(response);
const decrypted = await openpgp.decrypt({
message: message,
privateKeys: [privateKey]
});
this.working = false;
this.router.navigate(['/password-reset'], { queryParams: { token: decrypted.data.trim() } });
} else {
this.working = false;
}
})
}
}