Tiendil
#16
[НБ] Магистр
могущество: 13834
разработчик
дварф Халлр
87 уровня
А вообще кто-нибудь взялся что-то делать?
Linfar делает клиент под андроид, ещё делают плагин для браузеров (но о прогрессе я уже давно не слышал).
Hellspawn
#17
[ОРДА] Рекрут
могущество: 2470
длань судьбы
мужчина Хеля
101 уровня
если подгружать JSON из URL, то пишут самое оно использовать функции jQuery
$.getJSON(url, function (json) {

а уж jQuery насколько я понял щас в любом SDK...
Tiendil
#18
[НБ] Магистр
могущество: 13834
разработчик
дварф Халлр
87 уровня
Для запросов к серверу её действительно удобно использовать.

jQuery — это отдельная универсальная библиотека, не знаю в какой SDK она входит. В общем-то она самодостаточна.
Linfar
#19
без гильдии
могущество: 2049
длань судьбы
дварф Arkil
91 уровня
Кажется разумным добавить account_id в ответ логина. Иначе после успешного логина придется делать лишний запрос к /api/info. А учитывая то, что нужно в начале общения с сервером ещё получить csrf токен - получится 3 запроса на логин.
Tiendil
#20
[НБ] Магистр
могущество: 13834
разработчик
дварф Халлр
87 уровня
Сделаю.

Кстати, game/info можно вызывать без передачи account_id. Код для этого поправил, а документацию забыл.
Linfar
#21
без гильдии
могущество: 2049
длань судьбы
дварф Arkil
91 уровня
Кстати, game/info можно вызывать без передачи account_id. Код для этого поправил, а документацию забыл.
А это хорошо. Только я уже сделал с дополнительным запросом :)
Хабаси
#22
[ОРДА] Командор
могущество: 13253
длань судьбы
оркесса Гро-Дур
93 уровня
Ребят, я в этих вопросах -- тёмный лес, древняя тайга и болотная тундра.

Но меня спросил приятель: "Есть ли у Сказки мобильный клиент?"
Так что ответить?
bea231
#23
[^_^] Рекрут
могущество: 27

эльф Элфилинор
46 уровня
Как долго храниться сессия игрока при установленном флаге 'remember' в запросе 'login'?
bea231
#24
[^_^] Рекрут
могущество: 27

эльф Элфилинор
46 уровня
“Есть ли у Сказки мобильный клиент?”
Сейчас нет, но если у хватит на это сил и умелки программирование под андроид, то сделаю где-то к Новому Году первую версию.
Tiendil
#25
[НБ] Магистр
могущество: 13834
разработчик
дварф Халлр
87 уровня
Как долго храниться сессия игрока при установленном флаге 'remember' в запросе 'login'?
год

о сделаю где-то к Новому Году первую версию.
будем ждать
bea231
#26
[^_^] Рекрут
могущество: 27

эльф Элфилинор
46 уровня
  • Не сразу понял, что csrfmiddlewaretoken и csrftoken равны. Наверное ошибка начинающего, но для последователей было бы неплохо осветить этот момент в документации :)
  • В новой версии одинаковые предметы в рюкзаке отображаются в одном слоте с указанием количества. В API, вроде бы, пока что "один предмет" = "один слот". Так?
  • Зачем при "logout" именно POST запрос? (просто интересно)
  • Если при запросе не указать sessionid вообще, то в ответе его тоже нет, так и должно быть?
  • Проблема при 'login'.
    Первый запуск приложения: получены и сохранены csrftoken и sessionid, вызван 'login', все успешно. 'logout' произведен не был.
    Второй запуск приложения: восстановлены ранее сохраненные csrftoken и sessionid, вызван 'info'. В возвращенных данных account_id равен null, хотя вроде бы должен был воспользоваться "старой" сессией.



Сообщение изменено
Tiendil
#27
[НБ] Магистр
могущество: 13834
разработчик
дварф Халлр
87 уровня
Не сразу понял, что csrfmiddlewaretoken и csrftoken равны. Наверное ошибка начинающего, но для последователей было бы неплохо осветить этот момент в документации :)
В доках явно указано, что csrfmiddlewaretoken должен быть установлен в значение куки.

В новой версии одинаковые предметы в рюкзаке отображаются в одном слоте с указанием количества. В API, вроде бы, пока что “один предмет” = “один слот”. Так?
Да, формат возвращаемых данных меняться не будет — отображайте как хотите.

Зачем при “logout” именно POST запрос? (просто интересно)
Формально, GET запросы получают информацию, не изменяя состояние сессии, POST запросы изменяют состояние сессии. Logout — это изменение состояния сессии.

Если при запросе не указать sessionid вообще, то в ответе его тоже нет, так и должно быть?
Видимо должно. Наверно, я плохо изучил поведенеи Django в этом случае. При логине должно устанавиться. Отражу это в документации.

Проблема при 'login'.
Странно. Либо всё-таки были произведены какие-то дополнительные действия (логаут, изменение значений идентификаторов), либо просто кончилось действие сессии (2 недели, если не установлена флаг remember).
bea231
#28
[^_^] Рекрут
могущество: 27

эльф Элфилинор
46 уровня
Хмм, с моей стороны процесс выглядит примерно так:
1) Запрос info c пустым csrftoken и sessionid=1 (если не указать, то в ответе не будет валидного sessionid).
Ответ: нормальный JSON со статусом "ok" (account_id конечно же ноль, до этого не логинились). В cookies лежат похожие на правильные csrftoken и sessionid. Сохраняю их.
2) Запрос login с сохраненными cookies (те же самые значения, которые пришли из запроса info.
Ответ: нормальный JSON со статусом "ok". account_id указан. Но в cookies лежат новые csrftoken и sessionid.

P.S. поправил у себя установку cookies. Теперь нормально восстанавливается из сохраненной сессии. Но значениея csrftoken и sessionid все равно меняются при "login"- запросе.



Сообщение изменено
Нико д`Лас
#29
[​ϟ] Боец
могущество: 3275

гоблин Некр-Мон
64 уровня
У меня такой интересный вопрос по безопасности.
А что мешает сторонним разработчикам сохранять данные пользователя к себе на сервер?
Всегда это интересовало, с момента выхода клиента для вк под андроид(официальный появился позже, по моему).
Вот есть приложение, пользователь вводит туда свои данные, а они раз и в бд к разработчика приложения.

bea231
Хмм, с моей стороны процесс выглядит примерно так:
1) Запрос info c пустым csrftoken и sessionid=1 (если не указать, то в ответе не будет валидного sessionid).
Ответ: нормальный JSON со статусом “ok” (account_id конечно же ноль, до этого не логинились). В cookies лежат похожие на правильные csrftoken и sessionid. Сохраняю их.
2) Запрос login с сохраненными cookies (те же самые значения, которые пришли из запроса info.
Ответ: нормальный JSON со статусом “ok”. account_id указан. Но в cookies лежат новые csrftoken и sessionid.

P.S. поправил у себя установку cookies. Теперь нормально восстанавливается из сохраненной сессии. Но значениея csrftoken и sessionid все равно меняются при “login”- запросе.
Возможно, у тебя первое действие выполняется без проверки, установлены ли кукисы токена и сессии?
Т.е. оно всегда сбрасывает значения токена на пустой, а сессии на 1.



Сообщение изменено
Tiendil
#30
[НБ] Магистр
могущество: 13834
разработчик
дварф Халлр
87 уровня
Нико д`Лас
У меня такой интересный вопрос по безопасности.
А что мешает сторонним разработчикам сохранять данные пользователя к себе на сервер?
Тут есть два вариант.

1. В простом случае (как это сделано в апи Cказки) — ничего.
2. Если чуть посложнее, то делают вот так: http://ru.wikipedia.org/wiki/OAuth — тогда пользователь не передаёт логин/пароль сторонним разработчикам.