License Gen and Verification added to core
This commit is contained in:
@@ -48,9 +48,16 @@ public static class AuthEndpoints
|
|||||||
Console.WriteLine($"UN: {request.Username}\nToken: {request.Token}");
|
Console.WriteLine($"UN: {request.Username}\nToken: {request.Token}");
|
||||||
return Results.Ok(valid);
|
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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Newtonsoft.Json;
|
using Microsoft.AspNetCore.WebUtilities;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using RelayCore.Endpoints;
|
using RelayCore.Endpoints;
|
||||||
using RelayCore.Enums;
|
using RelayCore.Enums;
|
||||||
using RelayCore.Models;
|
using RelayCore.Models;
|
||||||
@@ -97,4 +98,29 @@ public class APIAuthService(SurrealDbClient _db)
|
|||||||
|
|
||||||
return true;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -19,7 +19,22 @@ public class AuthUserVerify
|
|||||||
public string Token { get; set; }
|
public string Token { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class AuthServerLicense
|
public class AuthServerLicenseVerify
|
||||||
{
|
{
|
||||||
public string License { get; set; }
|
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;}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user