Аутентификация с помощью Vue.js | Flask-RESTful и вход в Google

Я все еще новичок как в Vue.js, так и в Flask. Я создал простое приложение todo, которое использует конечные точки JSON из Flask и использует Vue.js для отображения пользовательского интерфейса.

Мое приложение имеет модель TODO, PROJECT и USER. Я успешно реализовал "обычный вход в систему" ​​через свою собственную модель пользователя. Поток для этого:

  1. Пользователь заполняет имя пользователя и пароль.
  2. POST-запрос к Flask API, который сохраняет пользователя с хешированным паролем в базе данных.
  3. Пользователь может войти через конечную точку /auth и получить взамен веб-токен JSON.
  4. Когда пользователь выходит из системы, токен уничтожается.

Теперь я хочу реализовать вход в Google вместе с существующей моделью пользователя. Я мог бы успешно создать вызов API Google и получить пользовательские данные из Google в клиенте vue.js. Но это то, где я застрял.

  • Что я должен сохранить в моей базе данных сейчас? У меня нет пароля для пользователя, но есть только токен для идентификации позже, когда я отправляю данные на сервер Flask.
  • Должен ли я сохранять пользователей Google Auth и обычных пользователей в одной таблице базы данных? Как я могу различить их, когда я получаю их информацию, чтобы проверить, существует ли пользователь?

Поскольку я очень обеспокоен созданием безопасных приложений в будущем, я хотел бы по-настоящему понять, какова наилучшая практика в такой ситуации.

Спасибо за вашу помощь!

1 ответ

Решение

Для всех, кто интересуется этой темой: я закончил тем, что сохранил всех пользователей в одной таблице базы данных и создал логическое значение, независимо от того, вошел ли пользователь в систему с помощью пароля / имени пользователя или с помощью поставщика OAuth. Если это так, предоставленный токен может быть использован для проверки пользователя.

Другие вопросы по тегам