ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Python (https://forum.antichat.xyz/forumdisplay.php?f=205)
-   -   FlaskDiscordAuth (https://forum.antichat.xyz/showthread.php?t=1541602)

fakelag28 25.08.2025 15:17

FlaskDiscordAuth |GitHub

Python библиотека для простой интеграции аутентификации Discord OAuth2 в приложения Flask.

Эта библиотека предоставляет удобный способ аутентификации пользователей через Discord, получения информации об аккаунте, управления серверами и защиты маршрутов с минимальной конфигурацией.

Ключевые особенности
  • Простая интеграция: Минимальная настройка для начала работы
  • Защита маршрутов: Декораторы для проверки аутентификации и прав на серверах Discord
  • Расширенная информация: Получение аватара, баннера и других данных аккаунта
  • Управление сессией: Автоматическое сохранение токенов и scope
  • Обновление токенов: Поддержка обновления access token через refresh token

Установка

Установите библиотеку через pip:

Bash:





Код:

pip
install
FlaskDiscordAuth



Базовое использование

Python:





Код:

from
flask
import
Flask
,
redirect
,
url_for
,
session
,
request
from
FlaskDiscordAuth
.
discord_auth
import
DiscordAuth

app
=
Flask
(
__name__
)
app
.
secret_key
=
'your_secret_key'
# Настройки Discord
CLIENT_ID
=
'your_client_id'
CLIENT_SECRET
=
'your_client_secret'
REDIRECT_URI
=
'http://127.0.0.1:5000/callback'
discord_auth
=
DiscordAuth
(
CLIENT_ID
,
CLIENT_SECRET
,
REDIRECT_URI
)
@app.route
(
'/'
)
def
home
(
)
:
if
'user'
in
session
:
return
f"Привет,{session['user']['username']}!"
return
'Добро пожаловать! Войти через Discord'
@app.route
(
'/login'
)
def
login
(
)
:
return
redirect
(
discord_auth
.
get_login_url
(
)
)
@app.route
(
'/callback'
)
def
callback
(
)
:
code
=
request
.
args
.
get
(
'code'
)
token_data
=
discord_auth
.
get_token
(
code
)
session
[
'access_token'
]
=
token_data
[
'access_token'
]
session
[
'user'
]
=
discord_auth
.
get_user_info
(
session
[
'access_token'
]
)
return
redirect
(
url_for
(
'home'
)
)
if
__name__
==
'__main__'
:
app
.
run
(
debug
=
True
)



Защита маршрутов

Python:





Код:

@app.route
(
'/profile'
)
@discord_auth.login_required
def
profile
(
)
:
return
f"Профиль пользователя{session['user']['username']}"
@app.route
(
'/moderator'
)
@discord_auth.guilds_required
(
'1234567890'
)
def
moderator_panel
(
)
:
return
"Панель модератора"



Расширенные возможности

Получение серверов пользователя:

Python:





Код:

guilds
=
discord_auth
.
get_user_guilds
(
access_token
)



Динамические scopes:

Python:





Код:

redirect
(
discord_auth
.
get_login_url
(
scope
=
'identify email guilds'
)
)



Получение баннера и аватара:

Python:





Код:

banner_url
=
f"https://cdn.discordapp.com/banners/{user_info['id']}/{user_info['banner']}.png"
avatar_url
=
f"https://cdn.discordapp.com/avatars/{user_info['id']}/{user_info['avatar']}.png"



Документация
  • Репозиторий
  • Официальная документация: Полное руководство по использованию библиотеки.

romq 25.08.2025 15:29

шик

chromiusj 25.08.2025 17:19

фласк: 👎👎👎

фастапи:👍👍👍

лайтстар:❤️❤️❤️

fakelag28 25.08.2025 18:00

Цитата:

Сообщение от chromiusj

фласк: 👎👎👎
фастапи:👍👍👍
лайтстар:❤️❤️❤️

😡


Время: 03:40