Авторизация в одностраничных приложениях. WSSE, токены или OAuth?
Собственно пишу сейчас один свой проектик, и, так как он мой, хочется сделать что-то правильно. В основном схема авторизации на проектах которые я видел была следующей:
при авторизации пользователю задается бессрочный токен, который будет уничтожен только после его выхода. По сути время жизни токена не ограничено. Токен хранится в базе.
Есть еще WSSE с его авторизацией через зашифрованный ключ, есть еще куча способов и есть OAuth.
Так же авторизация может проходить через аккаунты популярных соц сетей, то бишь через тот же OAuth по сути.
С WSSE по сути все просто, но я так понял что оно подразумевает ограниченную жизнь сессии. Да, это можно обойти но вроде как это не кошерно.
Так же в будущем апи будут использовать мобильные клиенты.
Вот собственно и встал вопрос с выбором метода авторизации, при котором трудозатраты будут наименьши.
Серверная часть базируется на Symfony, клиент на AngularJS.
Я бы порекомендовал OAuth2, есть нормальный стандарт, при необходимости можно расширить дополнительной функциональностью.
Бессрочный токен — как-то не очень красиво получается если токен только один и бессрочный. В том же OAuth2 тоже есть токены, но они ограничены во времени, хотя и могут продлеваться.
WSSE не использовал, сравнить не могу.