Я хочу использовать websockets в моем приложении Yesod. Если мое понимание пакета websockets верное, это означает, что мне нужно будет определить ServerApp, который является функцией PendingConnection -> IO()
для того, как обрабатывать запросы на соединение, а затем подключить его к моему приложению, используя поле параметровIntercept моих настроек Warp. Как я могу сделать обработку зависимой от аутентификации Yesod? Например, если я хотел отклонить подключения, кроме как от клиентов, которые вошли в систему как авторизованные пользователи, как я могу обнаружить текущего пользователя в системе? Поскольку мы не работаем в монаде Handler, кажется, что у нас нет способа вызвать такие функции, как maybeAuthId
. Это единственная альтернатива ручному просмотру заголовков запроса на соединение?Как использовать аутентификацию Yesod с помощью websockets?
ответ
Wether вы используете веб-порты или нет, вам все равно придется использовать сеансы для распознавания/авторизации клиентов на стороне сервера.
Websockets может заменить ваши маршруты api, но не может заменить ваше промежуточное программное обеспечение сервера.
И, конечно же, такие вещи, как авторизация и промежуточное программное обеспечение, - это то, что вы обрабатываете, когда клиент пытается использовать любой HTTP-глагол на вашем сервере (получить, после ...), как только веб-узел будет работать, там больше нет промежуточного программного обеспечения, и клиент должен уже иметь идентифицированный сеанс, если он уже вошел в систему, и этот сеанс - это то, что вам нужно использовать каждый раз, когда клиент запрашивает у сервера дополнительные данные через websocket.
- 1. Yesod, WebSockets и Persistent
- 2. Как использовать прокси-аутентификацию с помощью xsd.exe
- 3. Как использовать аутентификацию с помощью Awesomium.Net
- 4. Как использовать аутентификацию заголовка с помощью DataZen?
- 5. Как использовать UUID в Yesod?
- 6. как использовать аутентификацию webbroswer
- 7. Веб-узлы в Yesod?
- 8. Как использовать защищенные websockets (wss)?
- 9. Как использовать Websockets с Pyramid и socket.io?
- 10. Как использовать защищенные websockets с sock js
- 11. Торнадо, как использовать WebSockets с wsgi
- 12. Как использовать WebSockets в Rails
- 13. Как использовать WebSockets от SilverLight
- 14. Как использовать пользовательскую базовую аутентификацию с помощью SignalR (.NET client)?
- 15. Как использовать аутентификацию Windows с помощью php/symfony
- 16. Как использовать аутентификацию с помощью MVC Web API?
- 17. как использовать аутентификацию маркера firebase с помощью сетевого контроллера api2
- 18. Как использовать аутентификацию ui-router с помощью Asp.Net?
- 19. Как использовать аутентификацию facebook с помощью входа в систему asp.net?
- 20. Как использовать аутентификацию Firebase Twitter с помощью React Native?
- 21. Как использовать базовую аутентификацию с помощью Volley на Android?
- 22. Как правильно использовать parseJsonBody в Yesod?
- 23. Как запустить пример Йесод-WebSockets
- 24. Как отслеживать установленные соединения с помощью WebSockets
- 25. Показывать таймер с помощью WebSockets
- 26. Как использовать аутентификацию AuthenticationProvider Spring?
- 27. Использовать аутентификацию asp.net с servicestack
- 28. Отправка сообщений с помощью Websockets
- 29. Как использовать кэширование Yesod для каждого запроса?
- 30. SDWebImage, как использовать базовую аутентификацию