Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия | Следующая версия Следующая версия справа и слева | ||
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> | ||
====== Отправка сообщений для авторизованных пользователей ====== | ====== Отправка сообщений для авторизованных пользователей ====== | ||