Skip to content

Latest commit

 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AspNet.IdentityJwtExample

Описание

Пример реализации аутентификации и авторизации с использованием ASP.NET Core Identity + JWT (Access Token only).

В проекте используется аутентификация через JWT токен без Cookie и Refresh Token.

  • Реализовано:
  • Регистрация пользователя
  • Логин пользователя
  • Генерация Access Token
  • Добавление ролей в Claims токена
  • Авторизация по ролям через [Authorize(Roles = "")]
  • Работа JWT в Swagger

Identity используется для:

  • создания пользователей
  • хеширования пароля
  • управления ролями

JWT используется:

  • Access Token - короткоживущий токен (2 минуты)

Стек

  • ASP.NET Core 10.0
  • ASP.NET Core Identity
  • Microsoft.AspNetCore.Authentication.JwtBearer
  • EF Core (Code First)
  • MS SQL

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

"Jwt": {
  "SecretKey": "superSecretKey__@123456789123456",
  "Issuer": "https://localhost.5001",
  "Audience": "https://localhost:5001",
  "TokenValidityInMinutes": 2
}

Для демонстрации срок жизни токена - 2 минуты.

Миграции

Миграции применяются автоматически при запуске приложения

  await db.Database.MigrateAsync();

Дополнительно выполняется начальная инициализация таблицы ролей (создается роль User)

AccountController

Пример тестовых данных:

POST /api/account/register

{
  "firstName": "UserFirstName",
  "lastName": "UserLastName",
  "userName": "user.name",
  "email": "user@example.com",
  "password": "Password123!"
}

POST /api/account/login

{
  "email": "user@example.com",
  "password": "Password123!"
}

Ответ:

{
  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

OrderController

Метод GetOrders защищен атрибутом [Authorize]

About

Пример реализации аутентификации и авторизации в ASP.NET | Identity + JWT (Access Token)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages