Идентифицировать / аутентифицировать клиента на веб-сокете - PullRequest
0 голосов
/ 19 февраля 2019

Я создаю простой сервер сокетов в php.Но у меня есть некоторые сомнения, так как я впервые делаю что-то подобное.У меня вопрос, как мне определить клиента, возможно, это система аутентификации.

Что я пробовал до сих пор:

  • Cookies
  • Hash

Код сервера: https://www.codepile.net/pile/vBZP9xkq

Код клиента: https://www.codepile.net/pile/YlD2JDjB

Cookies

Когда я начал создавать сервер, я подумал, что аутентификации нетнужна была система, так как у меня есть сайт с логином, в принципе сокет собирался использовать один и тот же файл cookie, и на сервере сокетов у меня был бы доступ к сеансу клиента.

И вот онзнал, что сокет X был клиентом X.

Но к моему удивлению в заголовках появляется другой phpsessid.

PHPSESSID=7fo97nhaqfgir55ar17cr8c364 // php and js (site)
PHPSESSID=isjbjik06p0d8srm4j1ccptj2b // socket

Как по-разному они не работают.

Hash

Это был мой второй подход, добавление параметров к адресу сокета:

  • mysocket.com: 9000 /? H = 123456789

Но я быстро понялчто на сокет-сервере я ничего не смог поймать, заголовки и переменные $ _SERVER и $ _REQUEST не принимают параметры.

Позже я понял, что он не проходит, поскольку это не http-запрос, поэтому он не несет эту информацию.

Заключение

В этот момент я немного растерялся, я не знаю, как идентифицировать клиента, который входит в сокет, поскольку единственная информация, которую я имею, - это ip, и это нецелесообразно, поскольку в одном и том же ip может быть X клиентов.

Может кто-нибудь объяснить мне правильный способ аутентификации в сокете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...