Войдите на сайт через Discord API и сохраните сессию

У меня только что возникла масса проблем, когда я пытался понять, как это сделать. Мне нужно использовать 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())
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
180
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Когда вы нажимаете ссылку OAuth2 и входите в систему через Discord, они перенаправляются обратно на ваш веб-сайт с кодом в URL-адресе. Затем ваш сервер обменивает этот код на токен доступа, отправляя запрос POST на конечную точку токена Discord. Как только вы получите токен доступа, вам нужно будет надежно его сохранить. Обычно вы храните его в сеансе на стороне сервера. С помощью токена доступа вы можете отправлять запросы к Discord API для получения пользовательских данных, включая имя пользователя.

То есть, в принципе, я могу использовать для этого flask вместо каких-либо API Discord? Добавление фрагмента к исходному комментарию для форматирования.

Mikey K 01.05.2024 06:35

Да, точно! Flask будет служить платформой для обработки потока аутентификации и взаимодействия с API Discord. Процесс OAuth2 включает в себя перенаправление пользователей на страницу авторизации Discord, обработку URL-адреса обратного вызова, куда Discord отправляет код авторизации, обмен кода на токен доступа, а затем использование этого токена доступа для выполнения аутентифицированных запросов к API Discord для получения информации о пользователе.

Navodya Vidumini 03.05.2024 16:59

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