mirror of
https://github.com/DrMboga/WotBlitzStatisticsBlazor.git
synced 2026-10-23 11:20:05 +02:00
chore: WG login redirection and parameters parsing implemented
This commit is contained in:
1 parent
83681c6b42
commit
8a5d286560
4 files changed
+95
-4
No files matched your search
@@ -2,6 +2,7 @@
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MediatR;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.Extensions.Localization;
|
||||
using Radzen;
|
||||
using WotBlitzStatisticsPro.Blazor.Messages;
|
||||
@@ -9,20 +10,26 @@ using WotBlitzStatisticsPro.Blazor.Pages;
|
||||
|
||||
namespace WotBlitzStatisticsPro.Blazor.Services
|
||||
{
|
||||
public class WargamingLoginService: INotificationHandler<LoginToWgMessage>, INotificationHandler<RedirectToWgLoginMessage>
|
||||
public class WargamingLoginService:
|
||||
INotificationHandler<LoginToWgMessage>,
|
||||
INotificationHandler<RedirectToWgLoginMessage>,
|
||||
INotificationHandler<RedirectFromWgLoginMessage>
|
||||
{
|
||||
private readonly IGraphQlBackendService _graphQlBackendService;
|
||||
private readonly DialogService _dialogService;
|
||||
private readonly IStringLocalizer<App> _localizer;
|
||||
private readonly NavigationManager _navigationManager;
|
||||
|
||||
public WargamingLoginService(
|
||||
IGraphQlBackendService graphQlBackendService,
|
||||
DialogService dialogService,
|
||||
IStringLocalizer<App> localizer)
|
||||
IStringLocalizer<App> localizer,
|
||||
NavigationManager navigationManager)
|
||||
{
|
||||
_graphQlBackendService = graphQlBackendService;
|
||||
_dialogService = dialogService;
|
||||
_localizer = localizer;
|
||||
_navigationManager = navigationManager;
|
||||
}
|
||||
|
||||
public async Task Handle(LoginToWgMessage notification, CancellationToken cancellationToken)
|
||||
@@ -36,8 +43,17 @@ namespace WotBlitzStatisticsPro.Blazor.Services
|
||||
public async Task Handle(RedirectToWgLoginMessage notification, CancellationToken cancellationToken)
|
||||
{
|
||||
var url = await _graphQlBackendService.GetWgLoginUrl(notification.Realm);
|
||||
// ToDo: take a look to redirect message in previous app reincarnation
|
||||
url = $"{url}&redirect_uri=https://developers.wargaming.net/reference/all/wot/auth/login/";
|
||||
var baseUri = _navigationManager.BaseUri;
|
||||
url = $"{url}&redirect_uri={baseUri}login/{notification.Realm}";
|
||||
|
||||
_navigationManager.NavigateTo(url);
|
||||
}
|
||||
|
||||
public Task Handle(RedirectFromWgLoginMessage notification, CancellationToken cancellationToken)
|
||||
{
|
||||
// ToDo: Store login info to local storage
|
||||
// ToDo: Send OpenPlayerInfoMessage with isLoggedIn = true
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user