-
Notifications
You must be signed in to change notification settings - Fork 0
roadmap
tenyearssindrome edited this page May 20, 2025
·
1 revision
| Задача | Статус |
|---|---|
| Поддержка Google и Casdoor | ✅ |
| Авторизация через OAuth2 | ✅ |
| Хранение токенов в куках с подписью | ✅ |
| Обновление истёкших токенов | ✅ |
| Получение данных пользователя | ✅ |
| Задача | Описание |
|---|---|
🔒 Динамическая генерация state
|
Генерировать случайный state, сохранять в cookie или session. |
🧾 Проверка nonce (для OpenID Connect) |
Использовать nonce при работе с Google и Casdoor (OpenID). |
| 🛡️ Настройка параметров безопасности кук | Возможность задавать Secure, HttpOnly, SameSite, MaxAge. |
| Не просто паниковать или писать в JSON, а логировать ошибки. | |
| 📜 Валидация входных данных | Проверять конфигурацию, URL, секреты и т.п. |
| Задача | Описание |
|---|---|
| 🧩 Поддержка других провайдеров | GitHub, Facebook, Microsoft, Auth0 и др. |
| 🧱 Абстракция OAuth-провайдера | Создать интерфейс OAuthProvider для легкой интеграции новых провайдеров. |
| 🧪 Поддержка кастомных UserInfo-эндпоинтов | Возможность указывать свой эндпоинт /userinfo. |
| 📦 Поддержка JWT-токенов | Некоторые провайдеры возвращают JWT вместо простых строк. |
| Задача | Описание |
|---|---|
| 📄 Добавление полноценной документации |
godoc, примеры, FAQ, README.md. |
| 💡 Поддержка контекста и таймаутов | Использовать context.WithTimeout при HTTP-запросах. |
| 📏 Настройка времени жизни токена | Возможность задавать MaxAge кук через конфигурацию. |
| 🧼 Чистка кода: устранение дублирования | Вынести общие методы в отдельные утилиты. |
| 🎯 Унифицированный обработчик ошибок | Централизованная обработка ошибок с пользовательскими сообщениями. |
| Задача | Описание |
|---|---|
| 🧪 Unit-тесты | Для всех основных функций: проверка подписи, парсинг кук, обмен токенов. |
| 🌐 Интеграционные тесты | Мок-сервер для имитации OAuth-провайдера. |
| 🧹 Тесты на очистку сессии | Проверить работу LogoutHandler. |
| 📊 Покрытие тестами | Цель: не менее 80% покрытия. |
| Задача | Описание |
|---|---|
| 🔄 Поддержка глобального выхода (End Session) | Реализовать end_session_endpoint для Google/Casdoor. |
| 🧠 Хранение сессий в хранилище (Redis, DB) | Вместо кук — хранить данные сессии централизованно. |
| 📈 Поддержка нескольких сессий | Разрешить несколько активных сессий на разных устройствах. |
| Задача | Описание |
|---|---|
| 🧑🤝🧑 Поддержка Group/Role из UserInfo | Добавить поля Roles, Groups в UserInfoResponse. |
| 🧩 Middleware для проверки роли | Например: auth.AuthenticateWithRole("admin"). |
| 🧬 Поддержка OIDC Discovery | Автоматическое получение эндпоинтов из .well-known/openid-configuration. |
| 🧾 Webhook-поддержка | Уведомления о событиях: login, logout, token refresh. |
| Задача | Описание |
|---|---|
| 🧵 Поддержка мульти-провайдерной авторизации | Пользователь может войти через разные сервисы. |
| 🧱 Реактирование на go-kit / chi | Возможность использовать библиотеку с другими роутерами. |
| 📡 Поддержка JWT Bearer Token в заголовке | Совместимость с API-клиентами, которые передают токены в Authorization. |
| 📦 Поддержка модулей Go (Go modules) | Полная поддержка современных стандартов Go. |