Подключение к моему приложению на кинве с использованием остальных
Я пытаюсь подключиться к моему приложению на 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 и все офлайн, кэширование и т. д. позаботятся о вас.