Я работаю над мобильным приложением на основе facebook. Приложение создает локального пользователя с помощью входа в facebook. Шаги применения ниже.
- Войти с Facebook
- Базовая служба Создать локального пользователя
- Найдите друзей, которые используют приложение Facebook SDK
- Голосуй за друзей
Примечания:
- Я не хочу держать друзей пользователей в своей системе баз данных
- Я использую JWT
Проблема:
Я должен убедиться, что аутентифицированный пользователь и проголосовавший пользователь являются друзьями на Facebook. За пользователя должны проголосовать его друзья.
Я нашел пару решений, но у них тоже есть уязвимость.
Например;
Я прошел аутентификацию и получил всех своих друзей через facebook sdk. Запрос состоит в том, чтобы проголосовать за пользователя следующим образом: /vote/user_id/vote_id Серверная служба проверяет и проверяет токен jwt и голосует за пользователя, чей идентификатор user_id, как проголосовавшего за пользователя, прошедшего проверку подлинности.
table structure
from_user_id,vote_id,to_user_id
Таким образом, проблема заключается в том, что когда пользователь аутентифицируется, он может голосовать за пользователя из приложения, не принимая токен jwt, независимо от того, является ли он его другом или нет. Это действительно большая проблема для нас. Поэтому мне интересно, как можно проверить, что два пользователя являются друзьями, не отправляя для этого запрос в facebook. Или как спроектировать архитектуру, чтобы избежать этой ситуации.