Нужно ли проверять аутентификацию пользователя при каждом socket-ивенте?
Нужно ли проверять аутентификацию пользователя при каждом socket-ивенте?
Или достаточно только один раз - при on connection (безопасно ли это будет)?
Под аутентификацией имею в виду операции по проверке JWT/Bearer токена. На каждый socket-event мне кажется затратно проверять подпись, тк сокеты могут сыпаться быстро и в большом количестве.
Например, при подключении к сокет серверу в query буду отправлять userId и accessToken. Далее буду проверять, что accessToken валдиный для userId. Может ли пользователь отправить сначала свой userId со своим accessToken, а затем, рамках этого сокета подменить userId?
Можно проверять, можно нет. Подменить не сможет, но токен может истечь во время сессии. Если кто-то украдет чужой токен и подключится пока токен валиден, то в теории, если валидировать только при подключении, он сможет использовать украденный токен пока не отсоединится, даже если токен живет только час.