Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Category:

Простейший веб-сервис с авторизацией

Таки добил базис для различных веб-морд и выложил на гитхаб.
Для обслуживания веб-запросов используется libonion, а т.к. в ней не было вменяемой поддержки авторизации, добавил свое. В одной базе данных хранятся сведения о пользователях: имя пользователя, уровень доступа, SHA512-хэш пароля и необязательный комментарий. Вторая база содержит сессионные данные: имя пользователя, время получения ключа (UNIX-TIME), идентификатор сессии, необязательный идентификатор сокета (этот идентификатор выдается в "небезопасной" куки, поэтому генерируется заново при каждом очередном запросе; затем, когда юзер захочет открыть вебсокет, он должен будет сначала передать этот ключ) и данные (в JSON-формате, сейчас это — User-Agent и IP адрес пользователя).
Веб-админку мне было лень делать, да и не нужна она в моем случае: достаточно запустить демон с нужными параметрами, чтобы добавить/удалить/изменить пользователя, сделать дамп баз или запустить "vacuum" баз. Также можно удалить все сессионные данные старше заданного времени.
Остается еще добавить работу с вебсокетами, и можно будет лепить морду для спектрографа НЭС и "роботелескопа".
Tags: c, web, всячина
Subscribe

promo eddy_em august 17, 2019 12:33 3
Buy for 10 tokens
Юра намедни напечатал корпус для хронометра. Для первого блина получилось неплохо: И еще немного фотографий:
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 0 comments