mirror of
https://github.com/CannedNet/CannedNet.git
synced 2026-10-25 23:18:54 -07:00
49 lines
1.7 KiB
Plaintext
49 lines
1.7 KiB
Plaintext
@page "/login"
|
|
@rendermode InteractiveServer
|
|
@inject NavigationManager Navigation
|
|
|
|
<PageTitle>Login</PageTitle>
|
|
|
|
<div class="row justify-content-center mt-5">
|
|
<div class="col-md-4">
|
|
<div class="card">
|
|
<div class="card-header"><h4 class="mb-0">Admin Login</h4></div>
|
|
<div class="card-body">
|
|
<form method="post" action="/admin/login">
|
|
@if (errorMessage != null)
|
|
{
|
|
<div class="alert alert-danger">@errorMessage</div>
|
|
}
|
|
<div class="mb-3">
|
|
<label class="form-label">Username</label>
|
|
<input type="text" name="username" class="form-control" required />
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label">Password</label>
|
|
<input type="password" name="password" class="form-control" required />
|
|
</div>
|
|
<button type="submit" class="btn btn-primary w-100">Login</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
@code {
|
|
private string? errorMessage;
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
var uri = new Uri(Navigation.Uri);
|
|
var query = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query);
|
|
var error = query.TryGetValue("error", out var val) ? val.FirstOrDefault() : null;
|
|
errorMessage = error switch
|
|
{
|
|
"invalid" => "Invalid username or password.",
|
|
"missing" => "Please enter both username and password.",
|
|
"expired" => "Your session has expired. Please log in again.",
|
|
_ => null
|
|
};
|
|
}
|
|
}
|