Я пытаюсь решить проблему с хранением токенов, которая, на мой взгляд, может быть решена через интерфейсы. Мой текущий код для входа в систему следующий:
import { Component } from '@angular/core';
import { FormBuilder } from '@angular/forms';
import { HttpClient } from '@angular/common/http';
interface User {
success: {
id: number;
role: string;
accessToken: string;
refreshToken: string;
lifetime: {
epoch: number;
timeZone: number;
}
}
}
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css'],
})
export class LoginComponent {
constructor( private fb: FormBuilder, private http: HttpClient ) { }
loginInfo = this.fb.group({
email: [''],
password: ['']
})
onSubmit() {
this.http.post<User>('', this.loginInfo.value)
.subscribe(x => localStorage.setItem("currentUser",JSON.stringify(x)))
};
}
Единственная проблема в том, что refreshToken и accessToken входят в Base64, что, насколько мне известно, решается только с помощью функции atob (). Можно ли предварительно решить его в интерфейсе?
Я понимаю, что следующий код не работает, но он просто для большей ясности:
interface User {
success: {
id: number;
role: string;
accessToken: atob(string);
refreshToken: atob(string);
lifetime: {
epoch: number;
timeZone: number;
}
}
}