Logowanie jest proste
Pisałem jak zalogować się przy pomocy fejsa, gógla, twitera (logowanie-przy-pomocy-facebook-twitter-czy-google-owin-katana-na-asp-mvc-5). Sprawa stosunkowo łatwa, gdy się już to raz zrobi i działa. Microsoft daje także kilka swoich klas, które “ułatwiają” zarządzanie takimi kontami. Ale gdy jest się ciekawym, ma się za dużo czasu, albo się nudzi, albo…. Wtedy, wtedy zaczynają się schody. Jasne użytkownik jest zalogowany, mam zapewnienie że Jarek to Jarek, mam inne rzeczy. Ale kto mówi, że ja to ja? Skąd mam wiedzieć id=019283091283091823 i id=019283091283091823 pochodzą z różnych systemów? Czy ktoś i gdzie się podpisuje: “To byłem, ja Jarząbek!”
Otóż każdy z claim jest podpisane, powinny być, u mnie są, wystarczy wziąć pierwszy który posiadamy, znaleźć ten który posiada właściciela, sparsować i voila, jest:
Sprawdzam!
Zaczynając od enuma (@3) mamy listę wspieranych loginów, ułatwienie (usztywnienie) żeby nie rzucać stringami w powietrzu. Następnie klasa odpowiedzialna za autentykację posiada metodę, która z zalogowanego użytkownika wyciąga claimy, a w nich szuka (@16) tego który posiada metkę. Metka następnie jest parsowana na wspierany typ providera (@17) i zwracana do klienta klasy.Works on my machine – not tested on production.
Po co?
Kiedy jest to przydatne? Otóż może się okazać, jest różne osoby dostaną ten sam id, ale z dwóch różnych providerów, nie chciałbym aby mogły się zalogować na to samo konto. Tyle
Miłego weekendu, u mnie pada.
One thought on “Kim jest właściciel claimów #dajsiepoznac”