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

Авторизация вконтакте как настроить?

Пытаюсь подключить авторизацию к сайту. Постоянно выходит ошибка! Я уже не знаю как сделать. ИИ не помогают. Беру готовый код с вк, ставлю, авторизовываюсь, а он возвращает снова на страницу /login.php на начальную, хотя по логике должен дать токен авторизации и сайт должен принять его....

ниже показал код авторизации яндекса рабочий метод. вк никак не хочет.

Ссылка на онлайн блокнот с кодом

Код вк:

<div>
  <script nonce="csp_nonce" src="https://unpkg.com/@vkid/sdk@<3.0.0/dist-sdk/umd/index.js"></script>
  <script nonce="csp_nonce" type="text/javascript">
    if ('VKIDSDK' in window) {
      const VKID = window.VKIDSDK;

      VKID.Config.init({
        app: 555555,
        redirectUrl: 'https://kupos.ru/login.php',
        responseMode: VKID.ConfigResponseMode.Callback,
        source: VKID.ConfigSource.LOWCODE,
        scope: '', // Заполните нужными доступами по необходимости
      });

      const oneTap = new VKID.OneTap();

      oneTap.render({
        container: document.currentScript.parentElement,
        showAlternativeLogin: true
      })
      .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) {
        // Обработка полученного результата
      }
    
      function vkidOnError(error) {
        // Обработка ошибки
      }
    }
  </script>
</div>
  • Вопрос задан
  • 467 просмотров
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
у тебя vkidOnSuccess пустая — SDK получает токен и вызывает коллбек, а он ничего не делает. Добавь в vkidOnError хотя бы console.log(error) чтоб видеть что валится.

В success отправляй данные на бэк:
function vkidOnSuccess(data) {
  fetch('/login.php', {method:'POST', body:JSON.stringify(data)}).then(() => location.href='/');
}

И в login.php ловишь POST через json_decode(file_get_contents('php://input')), достаёшь access_token, создаёшь сессию.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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