Files
we_bstly-web/src/app/pages/password/password.component.ts
T
2022-01-21 22:38:31 +01:00

57 lines
1.5 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({
next: 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;
}
}
})
}
}