Всем привет!
Есть у нас такая вот архитектура информационной системы:
Состоит она из Rails API-only приложения, к которому обращается web клиент, а также из группы Browser based клиентов, общающихся с API посредством Angular приложения, которое они периодически обновляют со стороннего сервера. Доступ к этой группе клиентов есть только один раз, дальше они должны работать независимо от системного администратора. Необходимо реализовать аутентификацию (например, через токен), чтобы каждый такой клиент имел доступ только к своей информации. Токен заранее прописать нельзя, т. к. Angular приложение периодически обновляется со своего сервера, да и что делать, если понадобится его поменять. Пока видится решение только через связку "очень долгая сессия + куки", но хотелось бы получить stateless-систему. Не могу понять, задача действительно нетривиальная, или мы в процессе обдумывания движемся прямиком к изобретению велосипеда?
Отсюда следующие вопросы:
1. Как лучше всего решить поставленную задачу?
2. Как можно усовершенствовать подобную архитектуру?
3. Можно ли объединить Rails API-only app и Rails web app для возможности использования нативных методов Rails в обход API? Или предпочтительнее реализовать хорошее API отдельно и дальше работать только через него?
4. Какой джем стоит выбрать для распределения ролей пользователям?
Всем участникам обсуждения выражаю благодарность!