License Gen and Verification added to core

This commit is contained in:
2026-05-17 04:06:28 -04:00
parent 9fbe795660
commit 1ed3efcc68
3 changed files with 52 additions and 4 deletions

View File

@@ -48,9 +48,16 @@ public static class AuthEndpoints
Console.WriteLine($"UN: {request.Username}\nToken: {request.Token}");
return Results.Ok(valid);
});
app.MapPost("/server/verify/license", async (AuthServerLicense request, APIAuthService service) =>
app.MapPost("/server/license/generate", async (AuthServerLicenseGenerate request, APIAuthService service) =>
{
throw new NotImplementedException();
var license = await service.ServerLicenseGenerate(request);
return license != null ? Results.Ok(license) : Results.BadRequest();
});
app.MapPost("/server/license/verify", async (AuthServerLicenseVerify request, APIAuthService service) =>
{
bool valid = await service.ServerVerifyLicense(request);
return Results.Ok(valid);
});
}
}

View File

@@ -1,4 +1,5 @@
using Newtonsoft.Json;
using Microsoft.AspNetCore.WebUtilities;
using Newtonsoft.Json;
using RelayCore.Endpoints;
using RelayCore.Enums;
using RelayCore.Models;
@@ -97,4 +98,29 @@ public class APIAuthService(SurrealDbClient _db)
return true;
}
public async Task<string?> ServerLicenseGenerate(AuthServerLicenseGenerate request)
{
var hasher = new PasswordHasher();
string token = null;
token = hasher.HashPassword(DateTime.Now.ToString("yyyyMMddHHmmss"));
var created = await _db.Create("auth_licenses", new DBLicense
{
Token = token,
IsClient = false,
CreatedAt = DateTime.UtcNow,
ExpiresAt = DateTime.UtcNow.AddDays(365),
IsExpired = false,
});
return token;
}
public async Task<bool> ServerVerifyLicense(AuthServerLicenseVerify request)
{
var tokens = await _db.Select<DBLicense>("auth_licenses");
var token = tokens.FirstOrDefault(x => x.Token == request.License);
if (token != null)
return true;
return false;
}
}

View File

@@ -19,7 +19,22 @@ public class AuthUserVerify
public string Token { get; set; }
}
public class AuthServerLicense
public class AuthServerLicenseVerify
{
public string License { get; set; }
}
public class AuthServerLicenseGenerate
{
public string Server { get; set; }
public string Length {get; set;} //TODO: Convert to Enum
}
public class DBLicense
{
public string Token {get; set;}
public bool IsClient {get; set;}
public DateTime CreatedAt {get; set;}
public DateTime ExpiresAt {get; set;}
public bool IsExpired {get; set;}
}