@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..."); var hash = TheManager.getmd5Hash(); UserData userToCreate = new UserData() { Email = Email, ProposedEmail = Email, Password = BCrypt.Net.BCrypt.HashPassword(Password), Role = "User", TimeBanned = -1, LastUsedName = "Anonymous", BanReason = "Not banned", ConfirmedEmail = false, ResetPasswordExpiresAt = -1, ConfirmEmailToken = hash, ResetPasswordToken = "-1" }; if (await UsersRepository.getUserByEmailAsync(Email) != null) { msg = "This Email is already registered."; return; } int uid = await UsersRepository.createUserAsync(userToCreate); Postman.sendMail(Email, "Confirm email", "Confirm you email:\n" + $"https://bulletboards.xyz/sys/click/confirmmail/{uid}/{Email}/{Email}/{hash}"); var user = await UsersRepository.getUserByEmailRawAsync(Email); if (user == null) { await js.InvokeVoidAsync("alert", "User does not exist"); return; } verified = BCrypt.Net.BCrypt.Verify(Password, user.Password); if (verified) { var customAuthStateProvider = (CustomAuthenticationStateProvider)authStateProvider; await customAuthStateProvider.UpdateAuthenticationStateAsync(user); navManager.NavigateTo("/", true); return; } await js.InvokeVoidAsync("alert", $"Wrong Password"); } }