У меня только что возникла масса проблем, когда я пытался понять, как это сделать. Мне нужно использовать Discord API, чтобы войти на созданный мной веб-сайт, сохранить его в сеансе и в какой-то момент иметь возможность вызвать имя пользователя для записи в базе данных.
Я знаю, что вам нужно вытащить OAuth2 и тому подобное, но даже после прочтения документации я очень растерялся, а руководства, которые я могу найти по этому поводу с использованием Flask/Python, созданы 2-3 года назад, и Discord внес много изменений. На данный момент вся моя информация oAuth2 с портала разработчиков Discord хранится в файле config.py. Отсюда у меня также есть ссылка OAuth2, которая позволит мне войти в систему и получить взамен токен. Этот токен отображается в URL-адресе после входа в систему.
Я понятия не имею, как сохранить сеанс Discord и получить доступ к этому токену в коде. Как только я смогу это сделать, я думаю, что ВЕРОЯТНО смогу получить имя пользователя, поскольку считаю, что оно предоставляет доступ к текущим пользовательским данным.
Если бы кто-нибудь мог мне помочь, объяснив после того, как кто-то войдет в систему и перенаправит, как бы они его сохранили, а затем извлекли бы позже.
Все может оказаться полезным, и мне очень жаль, что это вопрос для новичков, я просто раньше не использовал Discord API.
Всего наилучшего.
Обновлено: Будет ли что-то подобное работать? Как, например (это будет поддельный код)
-- Login happens, redirects to /auth
@app.route('/auth')
def auth():
if request.method == 'POST':
session = request.args.get(code)
print(auth())
Когда вы нажимаете ссылку OAuth2 и входите в систему через Discord, они перенаправляются обратно на ваш веб-сайт с кодом в URL-адресе. Затем ваш сервер обменивает этот код на токен доступа, отправляя запрос POST на конечную точку токена Discord. Как только вы получите токен доступа, вам нужно будет надежно его сохранить. Обычно вы храните его в сеансе на стороне сервера. С помощью токена доступа вы можете отправлять запросы к Discord API для получения пользовательских данных, включая имя пользователя.
Да, точно! Flask будет служить платформой для обработки потока аутентификации и взаимодействия с API Discord. Процесс OAuth2 включает в себя перенаправление пользователей на страницу авторизации Discord, обработку URL-адреса обратного вызова, куда Discord отправляет код авторизации, обмен кода на токен доступа, а затем использование этого токена доступа для выполнения аутентифицированных запросов к API Discord для получения информации о пользователе.
То есть, в принципе, я могу использовать для этого flask вместо каких-либо API Discord? Добавление фрагмента к исходному комментарию для форматирования.