@page "/Auth/LegacyLogin"
@using System.Text.Json.Serialization
@using LibMatrix.Services
@inject HomeserverProviderService hsProvider
Login
@@:
Log in
Continue as guest (doesn't work)
Log in as guest
@code {
private LoginStruct authData = new();
List? LoggedInSessions { get; set; } = new();
async Task LoginWithAuth(LoginStruct record) {
if (LoggedInSessions.Any(x => x.UserId == $"@{record.Username}:{record.Homeserver}" && x.Proxy == record.Proxy)) return;
StateHasChanged();
try {
var result = new UserAuth(await hsProvider.Login(record.Homeserver, record.Username, record.Password, record.Proxy)) {
Proxy = record.Proxy
};
if (result == null) {
Console.WriteLine($"Failed to login to {record.Homeserver} as {record.Username}!");
return;
}
Console.WriteLine($"Obtained access token for {result.UserId}!");
await BugMineStorage.AddToken(result);
await BugMineStorage.SetCurrentToken(result);
NavigationManager.NavigateTo("/", forceLoad: true);
}
catch (Exception e) {
Console.WriteLine($"Failed to login to {record.Homeserver} as {record.Username}!");
Console.WriteLine(e);
record.Exception = e;
}
StateHasChanged();
}
private class LoginStruct {
public string? Homeserver { get; set; } = "";
public string? Username { get; set; } = "";
public string? Password { get; set; } = "";
public string? Proxy { get; set; }
[JsonIgnore]
internal Exception? Exception { get; set; }
}
}