Я использую Express с TypeORM, и в настоящее время я застрял в следующей ситуации:
Перед вставкой или обновлением записи я всегда хочу установить имя пользователя для текущей записи, чтобы сохранить информацию о том, кто последний раз обновлял эту запись.
С TypeORM это легко сделать с помощью подписчиков:
@EventSubscriber()
export class Subscriber implements EntitySubscriberInterface {
beforeUpdate(event: UpdateEvent<any>) {
const entity = event.entity;
if(entity instanceof Base) {
entity.lastUpdatedBy = 'username'; // TODO
}
}
}
Пользователь известен после успешной аутентификации:
@Put('/entity')
public updateEntity(@CurrentUser({required: true}) user: User, @Body enity: Entity): Promise<Entity> {
Log.info('User successfully authenticated: ' + user)
return this.manager.update(entity);
}
У меня такой вопрос: как проще всего хранить и получать доступ к пользовательской информации в области запроса?
Что я узнал до сих пор:
- Следующая запись stackoverflow-потока, похоже, связана, но
Для меня решение кажется непосильным ( ГЛОБАЛЬНЫЕ данные на HTTP / запрос сеанса? )
- Я также могу добавить информацию о пользователе в методе updateEntity, но тогда мне придется явно все время.
Есть ли другой вариант?