Как подключить регистрацию + авторизацию через ВК? (VK ID)

у меня есть сайт на Flask, где реализована регистрация пользователей по имени + почте + паролю. Вход происходит по почте и паролю. Используется from flask_login import LoginManager, login_user, login_required, logout_user, current_user.

Сейчас нужно сделать быстрый вход через ВК. Читаю документацию, но не помогает. Например, сказано:

воспользуйтесь сервисом https://unpkg.com/.

А как воспользоваться? Почему нельзя просто вставить в это:

 <script src="https://unpkg.com/@vkid/sdk@<2.1.0/dist-sdk/umd/index.js"></script> 

?

Потом, как сделать кнопку One Tap?

Сейчас имеется такой код:

<!-- login.html -->

{% extends 'base.html' %}

{% block content %}
{{ super() }}
{% for cat, msg in get_flashed_messages(True) %}
<div class="flash {{cat}}">{{msg}}</div>
{% endfor %}

<div class="login">
  <div class="form">
    <form action="" method="post">
      <div class="form-group">
        <label for="email">Почта:</label>
        <input type="email" id="email" name="email" placeholder="Почта" required>
      </div>
      <div class="form-group">
        <label for="psw">Пароль:</label>
        <input type="password" id="psw" name="psw" placeholder="Пароль" required>
      </div>
      <div class="form-group">
        <input type="checkbox" id="remainme" name="remainme">
        <label for="remainme">Запомнить меня</label>
      </div>
      <button type="submit">Войти</button>
      <div id="VkIdSdkOneTap"></div>  <-- ВОТ ОНА --------------------------------- -->
    </form>
    <hr>
    <p>Нет аккаунта? <a href="{{url_for('register')}}">Регистрация</a></p>
  </div>
</div>

{% endblock %}

<!-- base.html -->

 <!DOCTYPE html>
<html lang="ru">

<head>
    <link type="text/css" href="{{url_for('static', filename='css/style_reg.css')}}" rel="stylesheet" />
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://unpkg.com/@vkid/sdk@<2.1.0/dist-sdk/umd/index.js"></script>
    <script src="vk_auth.js"></script>
    {% block title %}
    {% if title %}
    <title>СППР - {{ title }}</title>
    {% else %}
    <title>СППР</title>
    {% endif %}
    {% endblock %}
</head>

<body>
    {% block content %}
    {% if title %}
    <h1>{{ title }}</h1>
    {% else %}
    <h1>СППР</h1>
    {% endif %}
    {% endblock %}

</body>

</html>
// vk_auth.js 

import * as VKID from '@vkid/sdk';


VKID.Config.init({
  app: 52091976, 
  redirectUrl: 'decisionss.ru', 
  state: 'dj29fnsadjsd82', 
  codeVerifier: 'FGH767Gd65', 
  scope: 'email phone' 
});


const oneTap = new VKID.OneTap();


oneTap.render({
  container: document.getElementById('VkIdSdkOneTap'),
  scheme: VKID.Scheme.LIGHT,
  lang: VKID.Languages.RUS
}).on(VKID.WidgetEvents.ERROR, handleError);

В итоге сейчас кнопки вообще нет, хотя в js она будто бы отрисована (код из документации).

И даже когда это заработает, что что дальше? Появится файл с токеном и файлом формата json с нужными мне данными? Или нет? И как мне их записать в мою основную БД? Или же нужно изворачиваться и создавать другую для такой регистрации (не хотелось бы...)?

Помогите, пожалуйста, буду очень благодарна!


Ответы (0 шт):