# Autentykacja
Do uwierzytelnienia użytkowników można użyć dwóch metod autentykacji: poprzez ciasteczka oraz token. Kod funkcji odpowiadającej za logowanie użytkownika jest tak przygotowany, że zadziała automatycznie bez względu, która metoda zostanie użyta po stronie api.
# SPA Authentication
Sesja oparta jest na ciasteczkach httpOnly. Takie podejście do autentykacji zapewnia ochronę CSRF a także chroni przed wyciekiem danych za pośrednictwem ataków XSS.
Uwaga
Frontend i backend muszą znajdować się na tej samej domenie (mogą na różnych subdomenach)
# Konfiguracja
W pliku konfiguracyjnym (quasar.conf.js) można nadpisać hosta dla lokalnie uruchomionego serwera. W przypadku gdy potrzebujemy mieć wspólną domenę z backendem, który nie znajduję się lokalnie możemy zmapować hosta tak aby odpowiadał naszym wymaganiom.
Przykład
- Adres zewnętrznego backendu: http://api.mooncore.pl
- Adres lokalnego frontendu: http://mooncore.pl:8080
- Pierwszym krokiem jaki musimy wykonać to mapowanie czyli dodanie poniższego wpisu w pliku /etc/hosts
127.0.0.1 mooncore.pl
- Następnie ustawiamy zmienną środowiskową HOST na taką domenę, która będzie odpowiadać konfiguracji z backendu
HOST=mooncore.pl
Uwaga
W momencie gdy używamy Laravel Serve jako api czyli API_BASE_URL=http://localhost:8000 to nie ustawiamy zmiennej HOST.
# API Token Authentication
Każdy request, który wysyłany jest do api uwzględnia nagłówek Authorization z Bearer tokenem, który został zwrócony po poprawnym zalogowaniu.
Uwaga
Dla aplikacji typu SPA w trybie produkcyjnym zalecane jest użycie sesji opartej na ciasteczkach!