Ok, zacznijmy od podstaw. Lubię pisać niepotrzebne nikomu fragmenty kodu oraz tekstu. Tak powstaje ten blog, tak powstają kreciki, tak powstaje 3/4 moich aplikacji które mają jedno zadanie. JEDNO. I nie mówię tu o automatyzacji życia codziennego przez oskryptowanie czynności powtarzalnych. Mówię tu o poświęceniu godziny na zakodowanie czegoś co zostanie odpalone raz, albo dwa razy, a czego wynikiem jest coś co mógłbym zrobić w sumie w 30 minut. Jednak wolę poświęcić na to dodatkowe 30 minut by to zrobić przy pomocy komputera bo… zawsze się czegoś nauczę, dowiem czegoś nowego itp. Jakaś lekcja z tego wyjdzie, a korzystając z tego samego stosu technologicznego co w życiu zawodowym, mogę mieć pewność, że prędzej czy później wyjdzie z tego jakiś plus.
Teraz zaś tworzę kolejną aplikację która jest stricte stworzona dla jednego użytkownika, do jednego celu, takie typowe „You Have One Job”, ale nie może stać w moim quasi bezpiecznym LANie tylko musi być w świecie szerokim wystawiona by telefon mógł się do niej dobić zawsze bez stawiania dodatkowych VPNów, tuneli etc. I bawię się uwierzytelnianiem.
Systemów by zrobić porządnie uwierzytelnienie się użytkownika jest … kilkadziesiąt? Wszelkie oauthy, openidy, systemy które można po prostu wziąć z półki i dołączyć do swojego kodu, troszkę dokonfigurować i już ALE… czy ja naprawdę chcę mieć tyle ekstra rzeczy? Czy potrzebuję np rejestrować się w Google by użyć ich konta (które i tak mam na telefonie) do autoryzacji gdy autoryzować ma się JEDNA osoba w skali globu i nie wiem jak długo będę chciał z tego korzystać?
Czy jest sens kombinować z tym wszystkim?
Może łatwiej będzie wygenerować jeden, jedyny, token. Zapisać go fizycznie w kliencie, zapisać go fizycznie w serwerze i mieć wszystko w dupie po prostu podpisując tym kluczem każdy request, albo szyfrując nim go. Obojętne.
W końcu jeśli komunikacja ma się odbywać między dwoma urządzeniami, korzysta jeden użytkownik z jednego urządzenia… to nie muszę robić „Enterprise Grade Solution” wspierającego MFA, wielu agentów uwierzytelnień, siedemnastu kroków rejestracji (które nawet nie będzie) itp.