Category:

Front Web Framework: часть 4

Запилил TODO пример с использованием servant, servant-auth-cookie, wai-websockets. Ниже краткий отчёт о ходе реализации.

  • В Yesod MonadHandler добавляет к каждому запросу контекст сессии, к которому в любой момент времени можно получить доступ.
  • В куках в каждую сессию можно положить произвольную мапу, и работать с ней, как из хэндлера, так и из вебсокета.
  • В Servant такого счастья нет, надо заворачивать маршруты в куки с двух сторон, добавляя ручную обработку заголовков запроса и ответа. 
  • В пакете servant-auth нет поддержки шифрования кук, не очень безопасно получается.
  • В servant-auth-cookie (альтернатива) можно из API пакета собирать своё уютненькое шифрование с ротирующимися ключами. Для себя взял простой пример. Забавно, к пакету приложили руки мои знакомые Stack Builders из Эквадора и @mrkkrp, чьи пакеты я успешно юзал в прошлом. Пользуясь случаем, передаю привет и респект.
  • (Хотя zip он когда-то давно патчить отказался, чтобы обеспечить поддержку распаковки архива, созданного 7-Zip, как не RFC-compliant archive. Впрочем, я не в обиде).
  • servant-websockets оказался нежизнеспособным в плане анализа прилетающего реквеста, а точнее — его заголовков. Последовал совету @qnikst, взял wai-websockets и не пожалел! Респект!

Пока всё это делал, нашёл способ не завозить в Fay классы типов. 

На очереди API для broadcast, для одиночной сессии. Ещё предстоит научиться поддерживать (ярлычок maintainer не просто так даётся ведь) пакеты и пилить инфраструктуру под front в виде сайта и площадки для экспериментов. Впереди ещё много работы.

Error

default userpic

Your IP address will be recorded 

When you submit the form an invisible reCAPTCHA check will be performed.
You must follow the Privacy Policy and Google Terms of use.