Задать вопрос

Ошибка при работе с VK ID API ({error: 'Ошибка API: User authorization failed: access_token was given to another ip address'})?

При работе с VK ID API я получаю ошибку:
{error: 'Ошибка API: User authorization failed: access_token was given to another ip address'}

На локалхосте все работает замечательно. Для авторизации я использую готовый виджет:
if ('VKIDSDK' in window) {
                        const VKID = window.VKIDSDK;
                        VKID.Config.init({
                            app: 52559297,
                            redirectUrl: '<?= $site ?>/login/vk_callback.php',
                            responseMode: VKID.ConfigResponseMode.Callback,
                            source: VKID.ConfigSource.LOWCODE,
                        });

                        const oneTap = new VKID.OneTap();

                        oneTap.render({
                            container: document.currentScript.parentElement,
                            showAlternativeLogin: true,
                            styles: {
                            width: 40
                            }
                        })
                        .on(VKID.WidgetEvents.ERROR, vkidOnError)
                        .on(VKID.OneTapInternalEvents.LOGIN_SUCCESS, function (payload) {
                            const code = payload.code;
                            const deviceId = payload.device_id;

                            VKID.Auth.exchangeCode(code, deviceId)
                            .then(vkidOnSuccess)
                            .catch(vkidOnError);
                        });
                        
                        function vkidOnSuccess(data) {
                            // Проверяем наличие access_token или id_token
                            if (data && data.access_token) {
                                const accessToken = data.access_token;
                                const idToken = data.id_token;

                                // Здесь вы можете использовать access_token для обращения к VK API или
                                // использовать idToken для расшифровки информации о пользователе

                                // Пример: Отправка Access Token на сервер для дальнейшей обработки
                                fetch(`<?= $site ?>/login/vk_callback.php`, {
                                    method: 'POST',
                                    headers: {
                                        'Content-Type': 'application/json'
                                    },
                                    body: JSON.stringify({ access_token: accessToken })
                                })
                                .then(response => response.json())
                                .then(result => {
                                    console.log('Server response:', result);
                                })
                                .catch(e => console.log('Ошибка при обработке ответа сервера:', e));


                                console.log('Получен access_token:', accessToken);
                            } else {
                                console.error('Неожиданные данные', data);
                            }
                        }

                        // Обработка ошибки
                        function vkidOnError(error) {
                            console.error('Ошибка при авторизации', error);
                        }
                    }

Также, я пробовал использовать VKID.Auth.logout(access_token);
  • Вопрос задан
  • 43 просмотра
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы