GoodGame / API

Public API for Goodgame.ru services
47 stars 7 forks source link

Авторизация через токен #6

Closed dark44k closed 1 year ago

dark44k commented 9 years ago

Уважаемые подскажите. Хочу авторизоваться через websocket но никак не получается: Получаю токен по логину паролю: ( [success] => 1 [scope] => [access_token] => 894b6da01fd7f3fd22a3305bd8a2dc92 [refresh_token] => 0b4e3ea9ffef533d3647d1e58e80f13d ) Делаю запрос на авторизацию: type: "auth", data: { user_id: "277835", token: access_token }

в ответ получаю: {"type":"success_auth","data":{"user_id":0,"user_name":""}} - авторизация не прошла.

Где допускаю ошибку? Спасибо.

ExC0tiC commented 9 years ago

У меня авторизация проходила. Правда брал токен вручную из html кода страницы GG, т.к. подумал, что токен, который приходит через апи стримов это совсем другая вещь. Очевидно я был прав.

Заходишь на любую страницу ГГ залогиненым и в исходном коде ищешь секцию script с переменными, именно с этим токеном все работало: var AJAX_PATH = 'http://goodgame.ru/ajax'; var AJAX_HTTPS_PATH = 'https://goodgame.ru/ajax'; var VIEW_PATH = 'http://goodgame.ru/view'; var WEB = 'http://goodgame.ru/'; var CKEDITOR_BASEPATH = WEB + 'js/ckeditor/'; var DEV = ''; var User = '63658'; var canRate = '1'; var Token = 'ххххххххххххххххххххххххххххххххххххххххх'; var NotifySettings = []; var Menu_Fix = '-1';

dark44k commented 9 years ago

Спасибо, ExC0tiC! По твоему алгоритму получилось авторизоваться! Токен бесконечный?

ExC0tiC commented 9 years ago

честно говоря не знаю), нужно спросить у программистов или на форуме. Мой с 27 апреля не изменился.

cronzzz commented 8 years ago

Топик актуальный? Я со всем разобрался, могу помочь.

GoodGame commented 8 years ago

Добрый день!

Мы и сами разобрались :)

16.07.2016, 16:10, "Vlad Kuduhov" notifications@github.com:

Топик актуальный? Я со всем разобрался, могу помочь.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

GoodGame commented 8 years ago

Спасибо!

16.07.2016, 16:10, "Vlad Kuduhov" notifications@github.com:

Топик актуальный? Я со всем разобрался, могу помочь.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

indiyskiy commented 7 years ago

Добрый день. Молодцы, что разобрались. Я вот нет. Не хотелось бы заставлять юзера вводить токен с сайта ручками. Это как-то странно. Авторизация через АПИ выдаёт 2 токена, а для общения с чатом нужен третий, который не получить. Сотона!

pvokhmyanin commented 7 years ago

@indiyskiy небольшой серч в гугле помог найти тему с форума ГГ, там удалось узнать шайтан-магию. Авторизация в чат происходит через POST-запрос к https://goodgame.ru/ajax/chatlogin К примеру, на питоне это выглядит так:

import requests

r = requests.post("https://goodgame.ru/ajax/chatlogin", data={'login': "mysuperlogin", 'password': "megasecurepassword"})`

В ответ получаешь JSON с результатом операции и токеном, если успех.

Сделал Pull-request с недостающей информацией: https://github.com/GoodGame/API/pull/14

@GoodGame найдется время глянуть?

indiyskiy commented 7 years ago

Вместо https://goodgame.ru/ajax/chatlogin можно использовать https://goodgame.ru/ajax/login

Форма ответа { "result": true, "response": "Вы успешно вошли на сайт", "code": 4, "login_page": "", "return": { "id": 123, "username": "Блаблабла", "avatar": "/files/avatars/avatar.png", "token": "многоцифробукв", "channel": { "id": "456", "title": "API test", "link": "https://goodgame.ru/channel/Блаблабла/", "streamer": "Блаблабла", "viewers": "0", "preview": "/images/ico_tv.png", "poster": "/images/ico_tv.png", "premium": false, "streamkey": "897", "status": false }, "settings": { "chat": { "alignType": 0, "pekaMod": 0, "sound": 1, "smilesType": 4, "hide": 0, "noBan": 1, "isDoSounds": false, "isDoHide": false, "isDoAnimate": true, "isDoAlign": true, "isShowPeka": true, "customColors": { "5": "premium", "184": "premium" }, "customIcons": { "5": "star", "184": "star" } } }, "dialogs": 0, "bl": true, "rights": "0", "premium": true } }

indiyskiy commented 7 years ago

Единственное, что поле "return" по имени совпадает с ключевым словом в Джаве. Возникают сложности с десериализацией ORM-подходом. Это неприятно.