Współdzielenie API oAuth2 z nadrzędną aplikacją

Witam!

Troszke nieszczęśliwie sformułowałem tytuł tematu ale nie wiem jak to zrobić lepiej, jak wymyśle to poprawie :smiley:

Otóż, mam dosyć klasyczną aplikację, railsy i normalne “statyczne” widoki (bez żadnych frameworków js) oraz API używające oAuth2. Potrzebuję dodać do aplikacji parę komponentów JS jak wyszukiwarka, modale dodawania rekordów i temu podobne rzeczy. Całą tą logikę mam zaimplementowaną w moim API jednak nie mogę (albo mogę?) go używać w komponentach, ponieważ utrudnia mi to sposób autoryzacji requestów.

Jak wiemy oauth2 wymaga tymczasowego tokena + odświeżania tego tokena jeśli wygaśnie więc niebardzo wiem jak mógł bym to ogarnąć w po stronie javascriptu. Nie mogę po prostu generować nowego access tokena “ręcznie” przy każdym requeście i przekazywać go do JS chociaż by z tego względu, że aplikacja dostępna jest również dla osób niezalogowanych (a o ile się nie mylę wygenerowanie takiego tokena wymaga podania użytkownika, do którego ten token należy, chociaż oczywiście mogę się mylić).

Myślałem też o dodaniu dodatkowego API, które autoryzowało by requesty nie access tokenem a sesją devise ale to mi troszkę śmierdzi duplikowaniem kodu i logiki.

Jak rozwiązujecie taki problem w swoich aplikacjach?

Używam devise + doorkeeper