Как упомянуто выше, у него нет решения для этого, потому что это логика работы анонимного режима. Однако обходным путем может быть создание отдельного класса сеанса, то есть создание глобального экземпляра при запуске приложения, чтобы клиент не зависел от sessionStorage или подключения к Интернету. Идея состояла бы в том, чтобы запустить глобальный экземпляр сеанса во время аутентификации пользователя, а после этого использовать его через геттер и сеттер для обработки всего, что необходимо. Единственная плохая сторона - это злоупотребление памятью, вы должны всегда очищать то, что вы не используете, и использовать максимально возможную оптимизацию. Я использовал это в некоторых тестовых приложениях с хорошей загрузкой данных (из-за манипулирования 50 тысячами записей), и у меня не было проблем с производительностью, иногда это может помочь вам:)
EX:
// IN TYPESCRIPT
interface CompanyInterface {
name: string,
enable : boolean
}
interface UserInterface {
name: string,
age: number,
company: CompanyInterface
}
interface SessionDataInterface {
token: string;
user: UserInterface;
}
class Session {
private data: SessionDataInterface;
public getData(key: string) {
return this.data[key];
}
public setData(key: string, value: any) {
return this.data[key] = value;
}
constructor(token: string | false = false) {
if (!token || token.length <= 10) {
// You Exception.....
}
}
}
// IN JAVASCRIPT
var Session = /** @class */ (function () {
function Session(token) {
if (token === void 0) { token = false; }
if (!token || token.length <= 10) {
// You Exception.....
}
}
Session.prototype.getData = function (key) {
return this.data[key];
};
Session.prototype.setData = function (key, value) {
return this.data[key] = value;
};
return Session;
}());