Zewnętrzna paczka do obsługi autentykacji w aplikacjach Asp.Net Core.

Siemanko.

Coraz częściej znajomi pytają się mnie czy nie zrobiłbym im stronki. Oczywiście bez żadnych fajerwerków, ale chcieli by mieć możliwość edycji treści, a więc oprócz statycznej stronki trzeba zrobić jakiś CMS’ik. Jak już ktoś ma edytowac content to dobrze by było gdyby to była osoba, która ma do tego prawo, a nie każdy kto wejdzie na odpowiedni url 😉 Dlatego potrzebna jest autentykacja. Oczywiście jest gotowe rozwiązanie o nazwie Microsoft.Identity, ale wymaga ono bazy danych i ogólnie jest to wyciąganie armaty na komara. Z kolei za każdym razem robić obsługę autentykacji dla każdej aplikacji też by mi się nie chciało (lenistwo) dlatego pomyślałem, że napiszę coś zewnętrznego w class library, spakuję w paczke i wrzucę do nugeta. W taki sposób, w kilka kliknięć i kilka linijek kodu będe miał rozwiązaną obsługę autentykacji (oczywiście na prostym poziomie).

Funkcjonalności

Plan jest taki aby konfiguracja wymagała dodania jednej linijki kodu w klasie Startup.cs oraz jednej linijki przy logowaniu. Będzię się to wiązało z doklejeniem ciasteczka zawierającego token JWT oraz jego validacją w middleware tuż przed wejściem do MVC. W ten sposób po sprawdzeniu property User.Identity.IsAuthenticated bedę wiedział czy user jest zalogowany czy nie. Planuje także dorobic obsługę delegata, który będzie uzupełniał User.Identity o odpowiednie dla danej aplikacji dane z tokena (nazwa usera, uprawnienia, itp.). To jak go będę logował to juz zupełnie inna sprawa (czy bedę sprawdzał w bazie, w pliku, w innej aplikacji – to już inna bajka). Biblioteczka będzie jedynie validowała wchodzące requesty oraz tworzyła i doklejała ciasteczko do response.

Kodzik

Kodzik wrzuciłem na github’a.

Pjona!

 

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s