При создании приложений стиля SPA с использованием таких фреймворков, как Angular, Ember, React и т.д., что люди считают лучшими методами аутентификации и управления сеансами? Я могу придумать пару способов рассмотрения проблемы.
-
Относитесь к нему не иначе, как к аутентификации с помощью обычного веб-приложения, предполагая, что API и UI имеют один и тот же исходный домен.
Вероятно, это связано с наличием сеансового файла cookie, хранилища сеансов на стороне сервера и, возможно, некоторой конечной точки сеанса API, с которой может пройти аутентифицированный веб-интерфейс, чтобы получить текущую пользовательскую информацию, чтобы помочь с персонализацией или, возможно, даже определить роли/возможности на стороне клиента. Сервер по-прежнему будет применять правила защиты доступа к данным, конечно, пользовательский интерфейс будет использовать эту информацию для настройки опыта.
-
Относитесь к нему как к любому стороннему клиенту, используя общедоступный API и аутентифицируясь с помощью какой-либо системы токенов, подобной OAuth. Этот токен-механизм будет использоваться клиентским интерфейсом для аутентификации каждого запроса, сделанного в API-интерфейсе сервера.
Я не очень разбираюсь в эксперте, но # 1, кажется, вполне достаточен для подавляющего большинства случаев, но мне бы очень хотелось услышать более опытные мнения.