# 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!