Jak uzyskać inny endpoint dla każdego tenanta?

0

Witajcie. Chcę zrobić podział aplikacji na subskrybentów właściwością int? TenantId. (null dla hosta) Każdy subskrybent będzie miał swój własny endpoint tzn.

  1. Dla hosta - https://mojastrona.pl
  2. Dla tenanta o nadanej nazwie 'lubiephp' o Id = 1 endpoint będzie następujący: https://mojastrona.pl/lubiephp

Macie może jakieś podpowiedzi jak coś takiego uzyskać? Stawiam na middleware tylko nie wiem jak się za to zabrać. Dodatkowo będzie pewnie potrzebny jakiś niestandardowy middleware od autoryzacji i autentykacji, bo to, że zaloguję sie na subskrybenta 1 nie oznacza, że jestem zalogowany na subskrybenta 2. jak to ugryźć? A może są jakieś gotowe rozwiązania?

0

@gswidwa1:

To mocno pachnie XY problemem.
Dla aplikacji serversidowej przyklasnął bym takim ideom, ale dla endpointów ... nie umiem dostrzec potrzeby na "ładne" rozwiniecie URL-a

A numer mandanta - o ile by to naprawdę był rasowy cloudowy projekt - bym miał w JWT, chyba. Nie jest oczywiste co chcesz.

@S4t:

Przed produkcją będzie development, a ngnix bym to utrudniał (przynajmniej mi by utrudniał)

0

Klient wchodząc na taki link byłby kierowany od razu doi swojej strony. I dla klientów moich subskrybentów wygląda to lepiej

0

Klient wchodząc na taki link byłby kierowany od razu doi swojej strony. I dla klientów moich subskrybentów wygląda to lepiej — gswidwa1 27 minut temu

Uzgodnijmy zeznania.
Dla mnie endpoint to coś, co zwraca dane (np w konwencji REST/JSON) do konsumpcji np przez warstwę frontendową

Ty mówisz jak o klasycznej aplikacji serwesidowej. Jakiś HTML, jakiś 303 czy jak mu tam ... skutkujące w przeglądarce jako takiej, a nie w kodzie Javascript. W moim pojmowaniu to nie endoint
Dla mnie nie jest to coś złe, s/s jest ok, ale ustalmy o czym mówimy

1

Może to Ci pomoże - kilka miesięcy temu przerabiałem podobny projekt. Z tym, że każdy klient ma swoją subdomene, czyli to by wyglądało tak: https://lubiephp.mojastrona.pl. I po subdomenie sterowałem do jakiej bazy się odpytywać o dane itp.
https://medium.com/@sudheer.sandu/multi-tenant-application-68c11cc68929
https://www.finbuckle.com/MultiTenant

5
gswidwa1 napisał(a):

Macie może jakieś podpowiedzi jak coś takiego uzyskać? Stawiam na middleware tylko nie wiem jak się za to zabrać. Dodatkowo będzie pewnie potrzebny jakiś niestandardowy middleware od autoryzacji i autentykacji, bo to, że zaloguję sie na subskrybenta 1 nie oznacza, że jestem zalogowany na subskrybenta 2. jak to ugryźć? A może są jakieś gotowe rozwiązania?

Nie wystarczy Ci po prostu w MapRoute dodać poza {controller}, {action} jakieś {tenantCode} i na tym dalej operować?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.