Добро пожаловать в SimpleExampleAuth — простой, но мощный пример реализации системы авторизации. Этот проект создан для того, чтобы наглядно продемонстрировать, как быстро и эффективно организовать систему аутентификации с использованием современных технологий.
- Классическая авторизация через почту и пароль.
- Авторизация через GitHub SSO с использованием куки.
- JWT-токены для защиты пользовательских данных.
- SHA256 шифрование для безопасного хранения паролей.
- Регистрация пользователей с сохранением данных в защищённой базе данных.
- Контроллер AccountController для управления регистрацией и авторизацией.
- JWT + SHA256: Обеспечивает безопасную авторизацию с помощью токенов.
- GitHub SSO: Быстрая авторизация через GitHub с использованием куки.
- База данных: Надежное хранение информации о пользователях.
- Структура проекта: Все файлы структурированы и находятся в корневой папке
wwwroot(.cshtml,.css,.js).
Проект является логическим продолжением RedisTutorialProject, сохраняя его микросервисный функционал Redis и добавляя новые возможности.
SimpleExampleAuth/
│
├── Properties/
│ └── launchSettings.json # Конфигурация для запуска проекта
│
├── wwwroot/
│ ├── css/ # Стили для различных страниц
│ │ ├── CreateStyles.css
│ │ ├── EditStyles.css
│ │ ├── IndexStyles.css
│ │ ├── LoginStyles.css
│ │ └── RegStyles.css
│ │
│ ├── js/ # Скрипты для различных страниц
│ ├── CreateScripts.js
│ ├── EditScripts.js
│ ├── IndexScripts.js
│ ├── LoginScripts.js
│ └── RegScripts.js
│
├── Controllers/
│ ├── AccountController.cs # Контроллер для регистрации и авторизации пользователей
│ └── HomeController.cs # Контроллер для домашней страницы
│
├── Models/
│ ├── Car.cs # Модель автомобиля
│ ├── CarContext.cs # Контекст базы данных для автомобилей
│ ├── RedisCacheService.cs # Сервис для работы с кэшем Redis
│ ├── User.cs # Модель пользователя
│ └── UserContext.cs # Контекст базы данных для пользователей
│
├── Views/
│ ├── Account/
│ │ ├── Login.cshtml # Страница авторизации
│ │ └── Registration.cshtml # Страница регистрации
│ │
│ ├── Home/
│ │ ├── Index.cshtml # Главная страница сайта
│ │ ├── Create.cshtml # Страница создания нового элемента
│ │ └── Edit.cshtml # Страница редактирования элементов
│ │
│ ├── _ViewImports.cshtml # Общие импорты для представлений
│ │
│ └── Shared/
│ └── _Layout.cshtml # Общий шаблон для всех страниц
│
├── appsettings.json # Настройки конфигурации проекта
├── JWTAuthOptions.cs # Конфигурация параметров JWT авторизации
└── Program.cs # Основная точка входа в приложение
Вот пошаговое руководство по установке проекта SimpleExampleAuth на вашем локальном компьютере:
-
Клонирование репозитория
- Для начала, клонируйте репозиторий на ваш локальный компьютер. Используйте следующую команду:
git clone https://github.com/NuIIX/SimpleExampleAuth.git
-
Настройка базы данных
- Проект требует настройки базы данных для хранения данных пользователей. Убедитесь, что у вас установлена и настроена нужная база данных (например, SQL Server или другой). В файле
appsettings.jsonнастройте строку подключения к вашей базе данных.
- Проект требует настройки базы данных для хранения данных пользователей. Убедитесь, что у вас установлена и настроена нужная база данных (например, SQL Server или другой). В файле
-
Установка зависимостей
- Перейдите в каталог проекта и выполните команду:
dotnet restore
Эта команда установит все необходимые зависимости, указанные в файле проекта.
-
Запуск приложения
- После установки зависимостей, запустите приложение командой:
dotnet run
Приложение будет запущено на локальном сервере, и в командной строке вы увидите URL, по которому доступен ваш проект.
SimpleExampleAuth предоставляет следующие возможности:
- Регистрация пользователей: Создавайте новые аккаунты с надёжным шифрованием паролей.
- Авторизация: Входите в систему с помощью традиционного метода (почта и пароль) или через GitHub SSO.
- Защита данных: Все данные пользователей надёжно защищены с использованием JWT и SHA256 шифрования.
Приложение также включает в себя управление пользователями, поддерживает регистрацию и авторизацию на страницах, которые связаны с вашей базой данных. Весь интерфейс разбит на .cshtml, .css, и .js файлы, обеспечивая чёткое разделение логики, стилей и скриптов.