Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Autoryzacja z roznych domen
nospor
post 15.02.2022, 17:17:21
Post #1





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Hejka,
mam dwa serwisy, jeden na domenie A.pl a drugi na domenie B.pl.
Sa to dwie rozne domeny.
Serwis A posiada autoryzacje i uzytkowniki moze przegladac serwis A bedac zalagowanym lub nie.
Serwis B nie posiada autoryzacji. Czy mozna w jakis sposob stwierdzic, czy uzytkownik bedac w serwisie B, jest zalogowany w serwisie A? Mowa o tej samej przegladarce.

Pewnie bez jakis przekierowan sie nie obejdzie?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Salvation
post 15.02.2022, 20:59:07
Post #2





Grupa: Zarejestrowani
Postów: 339
Pomógł: 70
Dołączył: 15.07.2014

Ostrzeżenie: (0%)
-----


Można spróbować wdrożyć SSO. Wtedy logowanie masz na stronie B, ale autoryzacja leci przez A.
Inne rozwiązanie - to jeżeli logowanie masz jako stateless i używasz np. zapisanego tokenu po stronie frontu (localstorage), to można zaimplementować endpoint na A, który będziesz pingować z tym tokenem z B i w odpowiedzi dostawać będziesz np. `boolean`.
Go to the top of the page
+Quote Post
nospor
post 15.02.2022, 21:25:34
Post #3





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Serwis B nie ma i nie potrzebuje w ogole logowania. Jedyne co serwis B potrzebuje to info, czy uzytkownik jest zalogowany w serwisie A.
Niestety sa to dwie rozne domeny wiec nie moge uzyc ciastek powiedzmy. Rozwiazanie z tokenem wydaje sie ok ale nie rozumiem za bardzo. Skad serwis A bedzie wiedzial ze token z B nalezy do usera z A?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Salvation
post 15.02.2022, 21:56:00
Post #4





Grupa: Zarejestrowani
Postów: 339
Pomógł: 70
Dołączył: 15.07.2014

Ostrzeżenie: (0%)
-----


Pracowałeś już może z tokenami JWT i REST API? https://auth0.com/docs/secure/security-guid...y/token-storage
Go to the top of the page
+Quote Post
viking
post 16.02.2022, 07:39:33
Post #5





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Rozwiązania cross-domenowe są zabronione więc jeśli nie masz np jakiegoś wspólnego punktu logowania (np oauth) to może być ciężko.


--------------------
Go to the top of the page
+Quote Post
nospor
post 16.02.2022, 10:01:01
Post #6





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Tak tez myslalem, wolalem sie jednak upewnic. Dobra, dzieki, pozostaje wiec praca chalupnicza nad rozwiazaniem biggrin.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
vokiel
post 16.02.2022, 10:25:09
Post #7





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Pozostaje jakiś fingerprinting przeglądarki i forever cookies / pingowanie w tle wspólnej domeny.


--------------------
Go to the top of the page
+Quote Post
nospor
post 16.02.2022, 10:57:54
Post #8





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




No padl pomysl by serwis B robil jakis token, pewnie fingerprint, przekierowal na serwis A z tym tokenem, serwis A zapisze sobie do bazy z info czy jest zalogowany czy nie i przekieruje na serwis B i wted sewis B zrobi wewnetrzny call do A by pobrac info czy zalogowany czy nie.
Proste, ale uzytkownik przez ulemk sekundy zobaczy dwa skoki na stronie do serwisu A a potem do B spowrotem.

Oczywiscie token wazy czasowo by za kazdym razem odswiezeniem strony B nie skakac ciagle do A


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
vokiel
post 16.02.2022, 18:38:39
Post #9





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


A czy potrzebujesz aż przekierowania? Nie lepiej XHR z zapytaniem czy jest zalogowany czy nie. Możesz przecież mieć info o tym w bazie wraz z fingerprintem wyliczonym na tych samych parametrach.


--------------------
Go to the top of the page
+Quote Post
Salvation
post 16.02.2022, 18:51:02
Post #10





Grupa: Zarejestrowani
Postów: 339
Pomógł: 70
Dołączył: 15.07.2014

Ostrzeżenie: (0%)
-----


O tym pisałem... Logujesz się na A gdzie generuje się token. Token zapisujesz w localstorage i masz do niego dostęp w nowej karcie gdzie idziesz na stronę B. Pobierasz token z localstorage i pchasz XHR-em Z B na endpoint do A, który zwraca np. boolean i robisz sobie co chcesz z tą wartością.
Go to the top of the page
+Quote Post
nospor
post 17.02.2022, 08:55:27
Post #11





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




A widzicie, no to mi umknelo z waszych wypowiedzi wczesniej. Dzieki!


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 06:16