Added CORS, added specific type for token in AuthToken.cs, added login page to blazor client

This commit is contained in:
2024-08-30 15:10:25 +03:00
parent c631dc99d0
commit 802e42563e
15 changed files with 102 additions and 36 deletions

View File

@@ -0,0 +1,11 @@
using ApplicationLayer.Services.AuthServices.Common;
using Domains.Users;
namespace ApplicationLayer.InfrastructureServicesInterfaces;
/// Generates jwt-tokens
public interface ITokenGenerator
{
/// returns jwt-token for specific user
AuthToken CreateToken(User user);
}

View File

@@ -0,0 +1,4 @@
namespace ApplicationLayer.Services.AuthServices.Common
{
public record AuthToken(string Token);
}

View File

@@ -1,4 +1,6 @@
using ApplicationLayer.Services.AuthServices.LoginService.Exceptions;
using ApplicationLayer.InfrastructureServicesInterfaces;
using ApplicationLayer.Services.AuthServices.Common;
using ApplicationLayer.Services.AuthServices.LoginService.Exceptions;
using ApplicationLayer.Services.AuthServices.NeededServices;
using ApplicationLayer.Services.AuthServices.Requests;
using Domains.Users;
@@ -7,7 +9,7 @@ namespace ApplicationLayer.Services.AuthServices.LoginService;
public class DevelopmentLoginService(IUsersRepository users, ITokenGenerator tokenGenerator) : ILoginService
{
async Task<string> ILoginService.LoginAsync(LoginRequest request, CancellationToken cancellationToken)
async Task<AuthToken> ILoginService.LoginAsync(LoginRequest request, CancellationToken cancellationToken)
{
if (request.AuthData is { Email: "admin@mail.ru", Password: "admin" })
{

View File

@@ -1,4 +1,5 @@
using ApplicationLayer.Services.AuthServices.Requests;
using ApplicationLayer.Services.AuthServices.Common;
using ApplicationLayer.Services.AuthServices.Requests;
namespace ApplicationLayer.Services.AuthServices.LoginService;
@@ -7,5 +8,5 @@ public interface ILoginService
{
/// Handle login request
/// <returns>JWT-token</returns>
Task<string> LoginAsync(LoginRequest request, CancellationToken cancellationToken);
Task<AuthToken> LoginAsync(LoginRequest request, CancellationToken cancellationToken);
}

View File

@@ -1,4 +1,6 @@
using ApplicationLayer.Services.AuthServices.LoginService.Exceptions;
using ApplicationLayer.InfrastructureServicesInterfaces;
using ApplicationLayer.Services.AuthServices.Common;
using ApplicationLayer.Services.AuthServices.LoginService.Exceptions;
using ApplicationLayer.Services.AuthServices.NeededServices;
using ApplicationLayer.Services.AuthServices.Requests;
@@ -7,7 +9,7 @@ namespace ApplicationLayer.Services.AuthServices.LoginService;
/// <inheritdoc cref="ILoginService" />
public class LoginService(IUsersRepository users, ITokenGenerator tokenGenerator) : ILoginService
{
async Task<string> ILoginService.LoginAsync(LoginRequest request, CancellationToken cancellationToken)
async Task<AuthToken> ILoginService.LoginAsync(LoginRequest request, CancellationToken cancellationToken)
{
var user = await users.FindByEmailAsync(request.AuthData.Email, cancellationToken);
if (user is null || user.Password != request.AuthData.Password)

View File

@@ -1,10 +0,0 @@
using Domains.Users;
namespace ApplicationLayer.Services.AuthServices.NeededServices;
/// Generates jwt-tokens
public interface ITokenGenerator
{
/// returns jwt-token for specific user
string CreateToken(User user);
}