@page "/sys/register" @using ImageBoardServerApp.Util @using ImageBoardServerApp.Data.Repository @using ImageBoardServerApp.Auth @inject IJSRuntime js @inject AuthenticationStateProvider authStateProvider @inject NavigationManager navManager Register - Buttletboards







@if (msg != null) { @msg }
@code { private string Email { get; set; } private string Password { get; set; } private bool is18 { get; set; } private string msg { get; set; } private bool verified; private async Task login() { if (!is18) { msg = "You have to be atleast 18 years old to register."; return; } if (!Email.Contains("@") || !Email.Contains(".")) { msg = "This Email address is not valid!"; return; } if (Password.Length < 6) { msg = "Your password has to be longer then 6 characters."; return; } Console.WriteLine("Registering..."); UserData userToCreate = new UserData() { Email = Email, Password = BCrypt.Net.BCrypt.HashPassword(Password), Role = "User", TimeBanned = -1, LastUsedName = "Anonymous", BanReason = "Not banned", ConfirmedEmail = false, ResetPasswordExpiresAt = DateTimeOffset.Now.ToUnixTimeMilliseconds() + 300000, ConfirmEmailToken = TheManager.getmd5Hash(), ResetPasswordToken = "-1" }; if (await UsersRepository.getUserByEmailAsync(Email) != null) { msg = "This Email is already registered."; return; } await UsersRepository.createUserAsync(userToCreate); Postman.sendMail(Email, "Confirm Email", ""); var user = await UsersRepository.getUserByEmailRawAsync(Email); if (user == null) { await js.InvokeVoidAsync("alert", "User does not exist"); verified = false; return; } verified = BCrypt.Net.BCrypt.Verify(Password, user.Password); if (verified) { verified = true; var customAuthStateProvider = (CustomAuthenticationStateProvider)authStateProvider; await customAuthStateProvider.UpdateAuthenticationStateAsync(user); navManager.NavigateTo("/", true); return; } await js.InvokeVoidAsync("alert", $"Wrong Password"); } }