Сейчас покажем, как настроить двухфакторную аутентификацию (2FA) в вашем .NET приложении с использованием библиотеки .NET Identity.
1️⃣ Установка и настройка .NET Identity
• Добавьте необходимые пакеты NuGet:
Install-Package Microsoft.AspNetCore.Identity.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools
• Настройте контекст данных и Identity:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddControllersWithViews();
}
2️⃣ Включение 2FA для пользователя
Теперь, когда Identity настроен, мы можем включить двухфакторную аутентификацию:
var user = await _userManager.GetUserAsync(User);
var tokenProvider = _userManager.GetTwoFactorAuthenticationTokenProvider(user);
var token = await _userManager.GenerateTwoFactorTokenAsync(user, tokenProvider);
// Отправить токен пользователю через email или SMS
3️⃣ Проверка введённого токена
После того как пользователь получит код на своем устройстве (например, через Google Authenticator), он должен ввести его на сайте. Проверка кода выглядит следующим образом:
var result = await _signInManager.TwoFactorSignInAsync("Authenticator", tokenInput, rememberMe, false);
if (result.Succeeded)
{
// Успешный вход
}
else
{
// Ошибка
}💬 Пишите, где сталкивались с 2FA👇 Админ, к примеру, каждый раз тянется к телефону, когда логинится в GitHub
🐸Библиотека шарписта #буст
