Skip to content

RomanKarb/RoAuth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

🚀 RoAuth SDK

RoAuth Logo

Мощный JavaScript SDK для простой и безопасной интеграции RoAuth аутентификации

Version License: MIT Browser Support

📖 Полная документация🌐 Примеры💬 Поддержка


✨ Что такое RoAuth SDK?

RoAuth SDK - это легкая и удобная библиотека для интеграции авторизации через RoAuth в ваши веб-приложения. Позволяет быстро добавить вход пользователей, управление сессиями и взаимодействие с API без лишней боли.

🎯 Ключевые возможности

  • 🔐 Безопасная аутентификация с HMAC-SHA256 подписями
  • 🎨 Полная кастомизация внешнего вида кнопок
  • 🪟 Popup-режим без перезагрузки страницы
  • 🌍 Многоязычность (Русский/English)
  • 📱 Адаптивный дизайн для всех устройств
  • 🛠️ Verbose logging для отладки
  • 🔔 Встроенные уведомления для обратной связи
  • 🔄 Кросс-браузерная поддержка

🚀 Быстрый старт

1. Подключите SDK

<script src="http://auth.roshkam.ru/public/authButton.js"></script>

2. Создайте контейнер

<div class="roauth-container"></div>

3. Инициализируйте кнопку

window.RoAuth.createButton({
    clientId: 'your-client-id',
    redirectUrl: 'https://your-app.com/callback',
    permissions: 'email+username'
});

🎉 Готово! Ваша кнопка RoAuth готова к работе.


📦 Установка

CDN (Рекомендуется)

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Мое приложение</title>
</head>
<body>
    <div class="roauth-container"></div>

    <script src="http://auth.roshkam.ru/public/authButton.js"></script>
    <script>
        window.RoAuth.createButton({
            clientId: 'your-client-id',
            redirectUrl: 'https://your-app.com/callback'
        });
    </script>
</body>
</html>

Скачивание файла

# Скачайте SDK файл с GitHub Releases
wget https://github.com/RomanKarb/RoAuth/releases/download/v1.28.1/authButton.js

# Или через curl
curl -O https://github.com/RomanKarb/RoAuth/releases/download/v1.28.1/authButton.js

🎨 Примеры

Базовая кнопка

window.RoAuth.createButton({
    clientId: 'demo-app',
    redirectUrl: 'https://demo-app.com/callback',
    permissions: 'email+username'
});

С кастомными стилями

window.RoAuth.createButton({
    clientId: 'styled-app',
    redirectUrl: 'https://styled-app.com/callback',
    style: {
        text: "🚀 Войти через RoAuth",
        theme: 'dark',
        borderRadius: 8,
        fontSize: 18
    },
    onSuccess: (data) => {
        console.log('Успешная авторизация!', data);
    }
});

С popup-режимом

window.RoAuth.createButton({
    clientId: 'popup-app',
    redirectUrl: 'https://popup-app.com/callback',
    popup: true,
    permissions: 'email+username+profile'
});

🔧 Конфигурация

Параметр Тип Обязательный Описание
clientId string Идентификатор OAuth-клиента
redirectUrl string URL для перенаправления после авторизации
permissions string Запрашиваемые разрешения (email+username)
popup boolean Включить popup-режим
lang string Установить язык для окна авторизации
style object Настройки внешнего вида
onSuccess function Callback при успешной авторизации
onError function Callback при ошибке

Темы

  • 🌞 Light (по умолчанию)
  • 🌙 Dark
  • 🎨 Custom (свои цвета)

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

📖 Полная документация содержит:

  • Детальное API описание
  • Расширенные примеры использования
  • Руководство по безопасности
  • Troubleshooting
  • Changelog

🛡️ Безопасность

  • 🔐 HMAC-SHA256 подписи для защиты от подделок
  • 🛡️ CSRF-защита с state параметрами
  • 🔒 HTTPS обязательный для production
  • ✅ Валидация всех URL и параметров

🌐 Системные требования

  • Браузеры: Chrome 60+, Firefox 55+, Safari 12+, Edge 79+
  • JavaScript: ES6+ поддержка
  • Протокол: HTTPS (production)
  • API: Web Crypto API

🐛 Проблемы и поддержка

Если у вас возникли проблемы:

  1. 📖 Проверьте документацию
  2. 🔍 Включите verbose logging: window.roAuthVerbose('on')
  3. 💬 Создайте issue
  4. 📝 Проверьте discussions

📈 Статистика

GitHub stars GitHub forks


📄 Лицензия

Этот проект распространяется под лицензией MIT - см. файл LICENSE для деталей.


🤝 Вклад в проект

Мы приветствуем вклад! Пожалуйста:

  1. Форкните репозиторий
  2. Создайте feature branch (git checkout -b feature/AmazingFeature)
  3. Зафиксируйте изменения (git commit -m 'Add some AmazingFeature')
  4. Отправьте в branch (git push origin feature/AmazingFeature)
  5. Откройте Pull Request

📞 Контакты


Разработано с ❤️

🌟 Поставьте звезду если проект вам понравился!

API Rate Limiting

  • login и authorize: максимум 7 запросов за 60 секунд на один IP клиента
  • validate и verify-token: максимум 15 запросов за 60 секунд на один IP клиента

При превышении лимита API возвращает HTTP 429 с JSON:

{
	"success": false,
	"error": "rate_limit_exceeded",
	"message": "rate_limit_exceeded Retry after 42 seconds"
}

Дополнительно вызов errorResponse включает количество секунд для повтора в качестве 4-го параметра, где применимо.

About

это лёгкая и удобная библиотека для интеграции авторизации через RoAuth в ваши веб-приложения. Позволяет быстро добавить вход пользователей, управление сессиями и взаимодействие с API без лишней боли.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors