Napiszę może lepiej na bazie Kohany bo dobrze go znam a CI słabo, jak i inne frameworki także. W Kohanie masz moduł Auth, który ma także driver ORM, więc musisz mieć też moduł Database oraz ORM. Moduły są w katalogu modules. Logowanie działa przy użyciu tabel: users, user_tokens, roles, roles_users oraz przy użyciu sesji, domyślnie jest to sesja natywna, więc serializowane dane są po prostu zapisywane w plikach sess_xxxxxxxxx a xxx to session_id w session_save_path, np w jakimś katalogu tmp.
Jeśli nie zaznaczę opcji "zapamiętaj mnie", to po zalogowaniu moje dane jako zalogowanego użytkownika są zapisywane w sesji i tylko z tego będą sprawdzane, przy czym domyślnie też Session lifetime jest ustawione na 0, co oznacza że taka sesja wygasa w przypadku zamknięcia przeglądarki, ma to oczywiście związek z tym że czas życia cookie, do którego jest zapisywane session id jest wtedy ustawiany na zero. Wystarczy przejrzeć kody żeby do tego dojść. Dopóki więc mam uruchomioną przeglądarkę to nie muszę się za każdym razem logować bo user jest brany z aktywnej sesji. Z tym że coś czytałem, że działa to chyba tylko przez godzinę, nie wiem, nie sprawdzałem.
W tym Twoim przykładzie wystarczyłoby chyba po prostu tworzyć ten token także w sesji, z czasem życia Session lifetime = 0, wówczas ten token także wygasa przy zamknięciu przeglądarki, tutaj zakładam że Ty chcesz korzystać z RESTful serwisu po prostu za pomocą tej samej przeglądarki a nie innej bo już nie zadziała. Co do cookie, jak ustawisz np. czas życia na dajmy na to 12h w tym czasie zamkniesz przeglądarkę i jeszcze potem w ciągu tego czasu uruchomisz, ciasteczka masz jeszcze ważne, więc odczytasz dane.
Tak to tutaj widzę. Łatwiej jest coś zrealizować jak się dobrze zna framework i to jest podstawa, bo jak nie znasz tego CI, czy tam dowolnego innego frameworka i nie wiesz jak działa auth i inne rzeczy to o czym my tu w ogóle mówimy? Będziesz się męczył i prosił o pomoc a i tak będą problemy, dopóki nie załapiesz dokładnie jak to wszystko działa.