Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ refactoring code #520

Merged
merged 1 commit into from
Sep 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Blazor.Server.UI/Components/Shared/UserMenu.razor
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
@using CleanArchitecture.Blazor.Infrastructure.Services.JWT;
@inject IStringLocalizer<SharedResource> L
@inject AccessTokenProvider TokenProvider
@inject IAccessTokenProvider TokenProvider
@inherits FluxorComponent
<MudTooltip Arrow="true" Text="@L["User Profile"]">
<MudMenu AnchorOrigin="Origin.BottomRight"
Expand Down
6 changes: 3 additions & 3 deletions src/Blazor.Server.UI/Pages/Authentication/Login.razor
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
@page "/pages/authentication/login"
@inject AccessTokenProvider TokenProvider
@inject IAccessTokenProvider TokenProvider
@inject IJSRuntime JS
@inherits OwningComponentBase
@using CleanArchitecture.Blazor.Application.Common.Interfaces.Identity;
Expand Down Expand Up @@ -85,7 +85,7 @@
@code {
private string _title = "Sign In";
private UserManager<ApplicationUser> UserManager { get; set; } = default!;
private AccessTokenProvider AccessTokenProvider { get; set; } = default!;
private IAccessTokenProvider AccessTokenProvider { get; set; } = default!;

[Inject]
private ILogger<Login> Logger { get; set; } = default!;
Expand Down Expand Up @@ -118,7 +118,7 @@
await base.OnInitializedAsync();
_title = L["Sign In"];
UserManager = ScopedServices.GetRequiredService<UserManager<ApplicationUser>>();
AccessTokenProvider = ScopedServices.GetRequiredService<AccessTokenProvider>();
AccessTokenProvider = ScopedServices.GetRequiredService<IAccessTokenProvider>();
}

private async Task OnSubmit()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ public static IServiceCollection AddAuthenticationService(this IServiceCollectio
};
});

services.AddScoped<AccessTokenProvider>();

services.AddSingleton<UserDataProvider>();
services.AddSingleton<IUserDataProvider>(sp =>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public static IServiceCollection AddSimpleJwtService(this IServiceCollection ser
options.Invoke(sjOptions);
}
services.AddSingleton(typeof(IOptions<SimpleJwtOptions>), Options.Create(sjOptions));
services.AddScoped<IAccessTokenProvider,AccessTokenProvider>();
services.AddScoped<IAccessTokenGenerator, AccessTokenGenerator>();
services.AddScoped<IRefreshTokenGenerator, RefreshTokenGenerator>();
services.AddScoped<ITokenGeneratorService, TokenGeneratorService>();
Expand Down
2 changes: 1 addition & 1 deletion src/Infrastructure/Hubs/HubClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public class HubClient : IAsyncDisposable
private readonly HubConnection _hubConnection;
private bool _started;

public HubClient(NavigationManager navigationManager, AccessTokenProvider authProvider)
public HubClient(NavigationManager navigationManager, IAccessTokenProvider authProvider)
{
var token = authProvider.AccessToken;
var hubUrl = navigationManager.BaseUri.TrimEnd('/') + SignalR.HubUrl;
Expand Down
8 changes: 4 additions & 4 deletions src/Infrastructure/Services/JWT/AccessTokenProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage;

namespace CleanArchitecture.Blazor.Infrastructure.Services.JWT;
public class AccessTokenProvider
public class AccessTokenProvider : IAccessTokenProvider
{
private readonly string _tokenKey = nameof(_tokenKey);
private readonly string _refreshTokenKey = nameof(_refreshTokenKey);
Expand All @@ -29,8 +29,8 @@ public AccessTokenProvider(ProtectedLocalStorage localStorage, ILoginService log
public async Task Login(ApplicationUser applicationUser)
{
var token = await _loginService.LoginAsync(applicationUser);
await _localStorage.SetAsync(_tokenKey, token.AccessToken??"");
await _localStorage.SetAsync(_refreshTokenKey, token.RefreshToken??"");
await _localStorage.SetAsync(_tokenKey, token.AccessToken ?? "");
await _localStorage.SetAsync(_refreshTokenKey, token.RefreshToken ?? "");
AccessToken = token.AccessToken;
RefreshToken = token.RefreshToken;
_tenantProvider.TenantId = applicationUser.TenantId;
Expand All @@ -54,7 +54,7 @@ public async Task<ClaimsPrincipal> GetClaimsPrincipal()
var result = await _tokenValidator.ValidateTokenAsync(token.Value);
if (result.IsValid)
{
var principal=new ClaimsPrincipal(result.ClaimsIdentity);
var principal = new ClaimsPrincipal(result.ClaimsIdentity);
_tenantProvider.TenantId = principal.GetTenantId();
_tenantProvider.TenantName = principal.GetTenantName();
_currentUser.UserId = principal.GetUserId();
Expand Down
4 changes: 2 additions & 2 deletions src/Infrastructure/Services/JWT/BlazorAuthStateProvider.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
namespace CleanArchitecture.Blazor.Infrastructure.Services.JWT;
public class BlazorAuthStateProvider : AuthenticationStateProvider
{
private readonly AccessTokenProvider _tokenProvider;
private readonly IAccessTokenProvider _tokenProvider;

public BlazorAuthStateProvider(AccessTokenProvider tokenProvider)
public BlazorAuthStateProvider(IAccessTokenProvider tokenProvider)
{
_tokenProvider = tokenProvider;
}
Expand Down
11 changes: 11 additions & 0 deletions src/Infrastructure/Services/JWT/IAccessTokenProvider.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
namespace CleanArchitecture.Blazor.Infrastructure.Services.JWT;

public interface IAccessTokenProvider
{
string? AccessToken { get; }
string? RefreshToken { get; }

Task<ClaimsPrincipal> GetClaimsPrincipal();
Task Login(ApplicationUser applicationUser);
Task RemoveAuthDataFromStorage();
}