Как сделать быструю и надежную авторизацию для WebSocket?
Добрый вечер!
У меня есть 10 устройств, которые удаленно управляются по протоколу WebSocket. Каждое устройство имеет свой Wifi модуль (ESP8266), который является WebSocket клиентом. Все эти устройства подключаются к главному WebSocket серверу, где я сделал следующую схему авторизации:
1) При подключении каждый клиент отправляет свой уникальный ключ, который уже забит в БД сервера.
2) Сервер принимает этот ключ и сверяет его с ключом из БД.
3) Если ключи совпадают => клиент может отправлять свои данные, иначе соединение обрывается.
На данный момент это работает, но я не уверен, верное ли это решение? Возможно есть более простые варианты авторизации? В качестве WebSocket сервера я использую Workerman (да, он написан на php, другие языки я не очень хорошо понимаю в данный момент, но буду рад советам).
Нормальный вариант если у вас защита (шифрование канала) настроена. Если не настроена, то уже не принципиально что шлется. Код, хэш, соль... все будет перехватываемо и используемо.
соглашусь с Алексей Сундуков. поднимайте wss.
пока не поднят wss говорить об авторизации можно только если у вас есть второй канал до вашего устройста. скажем, вы посылаете по sms код на устройство, который оно использует как ключ при очередном подклбчении. этакая 2х факторая авторизация для ботов.
но один фиг, повторю - поднимайте wss, иначе при желании вам в канал влезут подменой пакетов и т.п. и будет уже не важно, что вы успешно идентифицировали ваше устройство..