Wydaje mi się, że trochę mieszasz uwierzytelnianie sesją a tokenem.
Generalnie masz dwie opcje:
- Uwierzytelnianie sesji - zazwyczaj robione jest out-of-the-box, tzn. serwer pamięta, które sesje są uwierzytelnione a które nie.
- Uwierzytelnianie tokenem - w momencie uwierzytelniania użytkownikowi nadaje się unikalny token, zapisuje się go w cookie (klient) i po stronie DB (serwer). Token można też przekazywać np. w parametrze. W bazie danych trzymasz id tokenu, id posiadacza (w teorii posiadaczem tokenu może być sesja, ale zazwyczaj jest to użytkownik), datę wygaśnięcia itp.
Zaletą rozwiązania #1 jest fakt, że nie trzeba go implementować, większość serwerów aplikacji załatwi to za Ciebie. Wadą jest oczywiście problem z pracą na wielu aplikacjach, zwłaszcza jeśli klient ma się odwoływać do webservice'ów (zakładam, że skoro Angular to takie zamierzenie).
Tokeny ostatnio stają się coraz bardziej popularniejsze, właśnie ze względu na to, że kilka aplikacji podpiętych do jednej bazy danych z danymi uwierzytelniającymi mogą nie pytać użytkownika o zalogowanie każde oddzielnie, tylko raz.
Wszystko zależy od Twojego widzimisię, musisz poczytać jak to wygląda w AngularJS.