VK API - як перевірити на стороні сервера access_token-а, отриманого з standalone
Схема така: 1. користувач логіниться в мобільному додатку через vk 2. отримує access_token 3. передає його на сервер 4. на сервері відбувається перевірка цього access_token-а та отримання id користувача, що відповідає даному access_token (у FB аналог https://graph.facebook.com/me?access_token=.) 5. сервер автоматично реєструє/логініт користувача
Я намагаюся використати метод secure.checkToken: 1. vk.com/dev/auth_server - тут я отримав access_token 2. роблю такий запит: у відповідь отримую:
каже User authorization failed: no access_token passed
Уважно перевірте, що ви все відправляєте правильно. Щойно закінчив завдання, схоже на ваше. Все працює так, як написано у документації. Спершу отримуємо access_token:
Отримуємо у відповідь:
Додаток: Я user_token отримую з flash_vars (access_token) з іграшки на флеші, а ви через мобільний додаток, можливо тому поведінка відрізняється.
Додаток: Я user_token отримую з flash_vars (access_token) з іграшки на флеш, а ви через мобільний додаток, можливо тому поведінка відрізняється. саме в цьому і справа
варіант DmitrySikorsky я ще не перевіряв
Судячи з цієї документації ваш запит повинен мати вигляд
у наведеному вами посиланні написано: Даний метод є серверним. Він може бути викликаний тільки з сервера, від імені програми, використовуючи схему виклику серверних методів.
і якщо перейти за посиланням 'схема виклику серверних методів' vk.com/dev/secure_how_to, то там можна побачити таке: 1. В результаті виконання запиту буде повернуто access_token, за допомогоюякого можна здійснювати дзвінки до серверних методів API. 2.При викликі захищених методів до запиту необхідно додавати параметр client_secret.
Просто я не зовсім розумію що ви хочете зробити :) На мій ви заважаєте різні підходи в 1
Я правильно розумію, що ви пропонуєте після того, як програма отримала access_token і user_id пересилати цю пару на сервер?
У цьому випадку зловмисник може замінити user_id на будь-який інший і, коли прийде справжній користувач, не зможе зареєструватися. Або того гірше поставити цикл з перебору user_id від 1 до 10000000 і в результаті забити всі id-шники
1. користувач логіниться в мобільному додатку через vk 2. отримує access_token 3. передає його на сервер
Якщо ви логініте користувача через мобільний додаток, то виходить судячи знову-таки по цьому мануалу вам у рядку запиту приходить токен і айдишка користувача, ті по суті ці дії я намагаюся використовувати метод secure.checkToken: вам не потрібні
А взагалі опишіть що ви хочете зробити
Мені потрібно зробити "Увійти через VK", використовуючи додаток на iPhone/Android.
Перевірка access_token потрібна обов'язково, інакше можна підмінити ID користувача
Я вже описав схему роботи програми:
1. користувач логіниться в мобільному додатку через vk 2. отримує access_token 3. передає його на сервер 4. на сервері відбувається перевірка цього access_token-а та отримання id користувача відповідного даному access_token (у FB аналог https://graph.facebook.com/me?access_token=.) 5. сервер автоматично реєструє/логініт користувача
додатково: 6. сервер видає access_token у своїй системі і вже на моєму сервері використовуючи останній access_token я можу керувати даними через своємобільний додаток
Тоді не підкажу, тому що дивно, що ваші запити не працюють :(
Спробуйте може додати User authorization failed: You should pass