Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия Следующая версия справа и слева
comet:authentication [2018/02/24 12:16]
anastation468 [Онлайн демо отправки личных сообщений]
comet:authentication [2018/06/20 15:50]
127.0.0.1 внешнее изменение
Строка 21: Строка 21:
 И теперь пользователь будет авторизован на комет сервере. И теперь пользователь будет авторизован на комет сервере.
  
 +Для того чтоб отменить авторизацию можно вызвать удаление записи из users_auth
 +<code sql>
 +mysql> DELETE FROM users_auth WHERE id = 1;
 +</​code>​
 +
 +
 +====== Авторизация на основе JWT токенов ======
 +
 +Авторизация с использованием JWT менее ресурсоёмкая и более простая чем обычный способ описанный выше. Вам не надо отправлять в таблицу users_auth запрос с ключём авторизации. Вы формируете токен и отдаёте его пользователю. А пользователь его отдаёт в комет сервер. Комет сервер в состоянии проверить валидный токен или нет. Таким образом мы экономим количество запросов между вашим приложением и комет сервером.
 +
 +Для создания тестовых токенов удобно использовать jwt.io
 +
 +Для формирования JWT токена надо взять в качестве секретной фразы ваш пароль для подключения к CometQL (dev_key) и добавить к нему в конц ваш dev_id. Используя полученую строку как секретную фразу формируем токен со следующим телом: ​
 +
 +{{ :​comet:​jwt-example.png|Пример создания токена jwt}}
 +
 +В PAYLOAD передаём время жизни токена и идентификатор пользователя.
 +На пример для подключения с параметрами тестового пользователя:​
 +
 +<​code>​
 +# Сервер app.comet-server.ru
 +# Логин 15 (dev_id)
 +# Пароль lPXBFPqNg3f661JcegBY0N0dPXqUBdHXqj2cHf04PZgLHxT6z55e20ozojvMRvB8 (dev_key)
 +# База данных CometQL_v1
 +
 +# Строка для подключения из консоли mysql клиентом
 +mysql -h app.comet-server.ru -u15 -plPXBFPqNg3f661JcegBY0N0dPXqUBdHXqj2cHf04PZgLHxT6z55e20ozojvMRvB8 -DCometQL_v1 ​ --skip-ssl
 +</​code>​
 +
 +Секретный ключь для формирования токена будет
 +
 +<​code>​
 +    dev_id + dev_key = lPXBFPqNg3f661JcegBY0N0dPXqUBdHXqj2cHf04PZgLHxT6z55e20ozojvMRvB815
 +</​code>​
 +
 +Так как токен выдаётся на какое то время то для того чтоб прервать действие JWT токена досрочно можно его отозвать поместив его в список отозванных токенов запросом
 +
 +<code sql>
 +insert into revoked_tokens(token)VALUES("​revokedJWT"​);​
 +</​code>​
 +
 +Пример авторизации:​
 +<​html>​
 +<iframe height='​456'​ scrolling='​no'​ title='​CppComet JWT auth example'​ src='//​codepen.io/​Levhav/​embed/​xYwRJz/?​height=265&​theme-id=0&​default-tab=js,​result&​embed-version=2'​ frameborder='​no'​ allowtransparency='​true'​ allowfullscreen='​true'​ style='​width:​ 100%;'>​See the Pen <a href='​https://​codepen.io/​Levhav/​pen/​xYwRJz/'>​CppComet JWT auth example</​a>​ by Trapenok Victor (<a href='​https://​codepen.io/​Levhav'>​@Levhav</​a>​) on <a href='​https://​codepen.io'>​CodePen</​a>​.
 +</​iframe>​
 +</​html>​
 ====== Отправка сообщений для авторизованных пользователей ====== ====== Отправка сообщений для авторизованных пользователей ======