2016-06-05 5 views
0

Чтобы пометить пользователя, аутентифицированного в мой Play веб-приложение, хранить флаг в сессии, например, так:Play для Scala: траверс всех активных сеансов

Ok("Success").withSession("LoggedIn"-> "Yes") 

Теперь мне нужно знать номер пользователи, которые в настоящее время вошли в систему и их имена, возможно ли это без использования кеша?

ответ

3

withSession устанавливает cookie в браузере клиента с предоставленными вами данными, но не сохраняет эту сторону сервера данных. Невозможно определить, сколько активных файлов cookie вы раздавали, если вы не добавили код на стороне сервера, чтобы отслеживать их.

Есть много других недостатков с хранением этих данных в простой сессии, как это. Например, клиент может вмешиваться в файл cookie, чтобы он отображался так, как будто они вошли в систему. Лучше использовать существующую и проверенную библиотеку аутентификации, такую ​​как Play2-auth, SecureSocial и т. Д., Вместо того, чтобы сворачивать самостоятельно.

+0

Спасибо, я взглянул на библиотеки, и у них нет коммерческой поддержки (мне это нужно для моего проекта). Разве нет простой техники для отметки сеанса, если 'withSession' не рекомендуется? – ps0604

+0

Таким образом, ваш менеджер по продуктам отвергает общую, поддерживаемую и проверенную библиотеку сообщества, потому что у нее нет коммерческой поддержки, в то время как он принимает риски возможного багги внутреннего решения, разработанного без широкого обзора сообщества, управляемого StackOverflow Q & As? Как концепция безопасности ??? – Det

+0

@ ps0604 Надлежащая аутентификация не является чем-то простым. –

Смежные вопросы