PDA

Просмотр полной версии : FlaskDiscordAuth


fakelag28
25.08.2025, 15:17
FlaskDiscordAuth |GitHub (https://github.com/fakelag28/FlaskDiscordAuth)​

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"




Документация


Репозиторий (https://github.com/fakelag28/FlaskDiscordAuth)

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

romq
25.08.2025, 15:29
шик

chromiusj
25.08.2025, 17:19
фласк: 👎👎👎

фастапи:👍👍👍

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

fakelag28
25.08.2025, 18:00
фласк: 👎👎👎
фастапи:👍👍👍
лайтстар:❤️❤️❤️


😡