Подключение к моему приложению на кинве с использованием остальных

Я пытаюсь подключиться к моему приложению на kinvey. Из браузера я могу просто использовать:

https://baas.kinvey.com/appdata/<app_key>?app_secret=<secret>

Я получаю приглашение ввести app_key и app_secret в качестве uid и пароля, но по крайней мере я получаю:

{
   version: "3.8.13",
   kinvey: "hello <my app name>",
   appName: "<My app name>",
   environmentName: "Development"
}

но из питона я не могу. Ближайший, который я получил, был с:

requests.get('https://baas.kinvey.com/', headers={'app_key': app_key, 'app_secret': secret})

Это приводит меня к общему kinvey 'привет', но не к моему приложению.

Я тоже пробовал с

requests.get('https://baas.kinvey.com/' + app_key, headers={'app_key': app_key, 'app_secret': secret})

Если я попытаюсь добавить app_key + '?app_secret=' + secret на URL я получаю сообщение об ошибке в неправильно сформированном заголовке / недостающих учетных данных.

Мысли?

1 ответ

Решение

Правильный способ добавить учетные данные в запрос mbaas Kinvey - установить заголовок Basic Auth, как описано здесь. Использование заголовков, которые вы описываете, не поддерживается.

Шаги здесь заключаются в том, что вы используете appkey / appsecret в кодировке base64 для создания заголовка Basic Auth, чтобы добраться до конечных точек входа в систему, после чего вы получите токен Kinvey для аутентификации сеанса, соответствующей активному пользователю. Не существует такого понятия, как анонимный доступ к вашему приложению, кроме получения доступа к конечной точке входа.

В принципе, это не тривиально. Вот почему использовать REST API напрямую не рекомендуется, а использовать специальный SDK для вашей платформы. Есть SDK для многих платформ, включая java/android, javascript, C#/xamarin, xcode/swift и т. Д. В этих SDK вы просто вызываете такие функции, как "Kinvey.login" или "Kinvey.appdata.get" и все auth и все офлайн, кэширование и т. д. позаботятся о вас.

Другие вопросы по тегам