Fesor
@Fesor
Full-stack developer (Symfony, Angular)

Авторизация в одностраничных приложениях. WSSE, токены или OAuth?

Собственно пишу сейчас один свой проектик, и, так как он мой, хочется сделать что-то правильно. В основном схема авторизации на проектах которые я видел была следующей:

при авторизации пользователю задается бессрочный токен, который будет уничтожен только после его выхода. По сути время жизни токена не ограничено. Токен хранится в базе.

Есть еще WSSE с его авторизацией через зашифрованный ключ, есть еще куча способов и есть OAuth.

Так же авторизация может проходить через аккаунты популярных соц сетей, то бишь через тот же OAuth по сути.

С WSSE по сути все просто, но я так понял что оно подразумевает ограниченную жизнь сессии. Да, это можно обойти но вроде как это не кошерно.

Так же в будущем апи будут использовать мобильные клиенты.


Вот собственно и встал вопрос с выбором метода авторизации, при котором трудозатраты будут наименьши.


Серверная часть базируется на Symfony, клиент на AngularJS.
  • Вопрос задан
  • 8255 просмотров
Пригласить эксперта
Ответы на вопрос 3
nazarpc
@nazarpc
Open Source enthusiast
Я бы порекомендовал OAuth2, есть нормальный стандарт, при необходимости можно расширить дополнительной функциональностью.
Бессрочный токен — как-то не очень красиво получается если токен только один и бессрочный. В том же OAuth2 тоже есть токены, но они ограничены во времени, хотя и могут продлеваться.
WSSE не использовал, сравнить не могу.
Ответ написан
при котором трудозатраты будут наименьши


> POST /sessions
> {"username": "test", "password": "mest"}
< 201
< {"token": "hashhashhashhashhashhashhashhashhash"}
> POST /some-resources
> Authorization Token hashhashhashhashhashhashhashhashhash
< 200
< []
Ответ написан
@rkit
Сергей, а что в итоге выбрали?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы