chore: WG login redirection and parameters parsing implemented

This commit is contained in:
Mikhail Shabanov committed 2021-07-07 17:14:38 +02:00
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;
}
}
}