我想在我的Yesod應用程序中使用websockets。如果我對websockets包的理解是正確的,這意味着我需要定義一個ServerApp,它是一個函數PendingConnection -> IO()
,用於處理連接請求,然後使用我的Warp設置的settingsIntercept字段將其插入到我的應用程序中。我如何使處理依賴於Yesod的身份驗證?例如,如果我想拒絕除作爲授權用戶登錄的客戶端之外的連接,我如何檢測當前登錄的用戶?由於我們不是在Handler monad中工作,所以似乎我們沒有辦法調用像maybeAuthId
這樣的函數。是手動查看連接請求的標題的唯一替代方法嗎?如何使用Yesod的身份驗證與websockets?
19
A
回答
1
無論您是否使用websockets,您仍然必須使用會話來識別/授權服務器端的客戶端。
Websockets可以取代你的API路線,但無法取代你的服務器中間件。
當然,像授權和中間件這樣的事情,一旦客戶端正在嘗試服務器上的任何HTTP動詞(get,post ...),一旦websocket沒有運行,並且如果客戶端已經登錄,客戶端應該已經擁有一個已識別的會話,並且每當客戶端通過WebSocket向服務器請求更多數據時,該會話就是您需要使用的。
相關問題
- 1. 委託身份驗證使用的WebSockets
- 2. Yesod的多重身份驗證?
- 3. 如何使用Node.js/Express + Passport + Websockets進行身份驗證?
- 4. 使用asp.net身份驗證與自定義身份驗證
- 5. 使用Haskell向現有的Yesod項目添加身份驗證
- 6. Rails Api身份驗證與用戶身份驗證
- 7. 未使用表單身份驗證的身份驗證
- 8. 使用PHP身份驗證的HTTP身份驗證
- 9. Sitecore的身份驗證使用API身份驗證/登錄
- 10. 使用Windows身份驗證的簡單身份驗證代理
- 11. 使用pymongo身份驗證時的身份驗證錯誤
- 12. 我可以在Windows域身份驗證中使用html5 Websockets嗎?
- 13. Windows身份驗證 - 如何進行身份驗證使用不同的域
- 14. ASP.net Windows身份驗證與使用ActiveDirectoryMembershipProvider的Forms身份驗證進行比較
- 15. 與基本身份驗證的HTTP基本身份驗證
- 16. 身份驗證與facebook後的身份驗證
- 17. SQLSever身份驗證與Windows身份驗證之間的區別
- 18. 如何使用Windows身份驗證
- 19. 與ASP.Net使用Windows身份驗證AJAX
- 20. 使用身份驗證與代理
- 21. 使用baum/baum與laravel身份驗證
- 22. 身份驗證:JWT使用與會話
- 23. 使用Windows身份驗證與PHP?
- 24. WinHTTP:使用代理與身份驗證
- 25. 使用FSharp.Data.Http驗證身份驗證
- 26. Webapi身份驗證,僅使用客戶端身份驗證
- 27. 身份驗證:如何配置git bash以使用SAML身份驗證?
- 28. 如何使用摘要身份驗證手動進行身份驗證?
- 29. 如何通過Active Directory/Windows身份驗證使用Servicestack身份驗證?
- 30. 將窗體身份驗證與Windows身份驗證混合使用