Api server - правильная стратегия с несколькими подключенными организациями - PullRequest
1 голос
/ 30 мая 2020

Я ищу подходящую стратегию для моего сервера api, написанного на Nest Js. Я бы хотел, чтобы мои пользователи были связаны с организациями, и мне удалось включить в свой токен идентификатор организации, который я нахожу, когда делаю запросы, пока все хорошо. Например, цель состоит в том, чтобы каждая организация запрашивала принадлежащие ей сущности. Например: «Джон Доу» связывает себя с организацией «OrgA», когда он попадает в каталог, я могу прочитать в своем токене, что это Джон Доу и что он принадлежит OrgA, но я бы хотел, чтобы он увидел OrgA каталог, а не каталог всех организаций ... Нужно ли мне создавать промежуточное ПО, которое соединяет меня с БД с именем "OrgA", или мне нужно сделать фильтр для моей БД по умолчанию? Или я должен сделать дерево в моей БД по умолчанию? Я не нахожу примеров по этому поводу. Заранее спасибо

// В моем каталоге .controller.ts

@UseGuards(JwtAuthGuard) // user guard
@Get()
getAll(@Request() req){
    const user = req.user; // info user in my Token
    console.log('user Token',user);
    return this._catalogService.findAll(user.organization);
}

// В моем каталоге.services.ts

  findAll(organization: string): Promise<Zones[]> {

  console.log('findAll service org', organization)

    return this.catalogRepository.find();
  }

Если найдете этот пост : Nest JS: подключение к базе данных (TypeORM) по запросу (субдомен) Я пробую, но в промежуточном программном обеспечении у меня нет моей организации в заголовке, только токен, и если я попытаюсь подключиться вручную база данных соединение службы каталога. имя - это база данных по умолчанию ...

Или, может быть, решением будет сервер Api / Redis для входа в систему с возвращением чего-то для доступа к API связанной организации. И что у каждой организации есть собственный выделенный сервер API в контейнере? Никто не знает, для какой хорошей практики мне следует go?

...