70 lines
2.3 KiB
C#
70 lines
2.3 KiB
C#
using Microsoft.Extensions.Primitives;
|
|
using RelayCore.Services;
|
|
|
|
namespace RelayCore.Endpoints;
|
|
|
|
public static class AuthEndpoints
|
|
{
|
|
public static void MapAuthEndpoints(this WebApplication app)
|
|
{
|
|
app.MapPost("/user/signin", async (AuthSignin request, APIAuthService service, HttpContext context) =>
|
|
{
|
|
string ip = "";
|
|
StringValues userAgent = "";
|
|
if (context != null)
|
|
{
|
|
ip = context.Connection.RemoteIpAddress?.MapToIPv4().ToString();
|
|
context.Request.Headers.TryGetValue("User-Agent", out userAgent);
|
|
}
|
|
|
|
var token = await service.UserSigninAsync(request, ip, userAgent.ToString());
|
|
|
|
return token != null ? Results.Ok(token) : Results.Unauthorized();
|
|
});
|
|
app.MapGet("/users", async (APIAuthService service) =>
|
|
{
|
|
return Results.Ok(service.GetUsersAsync());
|
|
});
|
|
app.MapPost("/user/register", async (AuthRegister request, APIAuthService service, HttpContext context) =>
|
|
{
|
|
var ip = context.Connection.RemoteIpAddress?.MapToIPv4().ToString();
|
|
context.Request.Headers.TryGetValue("User-Agent", out var userAgent);
|
|
|
|
var token = await service.UserRegisterAsync(request, ip, userAgent);
|
|
return token != null ? Results.Ok(token) : Results.Ok("Username or Email already exists!");
|
|
});
|
|
app.MapPost("/server/verify/user", async (AuthUserVerify request, APIAuthService service) =>
|
|
{
|
|
bool valid = await service.ServerVerifyUser(request);
|
|
return Results.Ok(valid);
|
|
});
|
|
app.MapPost("/server/verify/license", async (AuthServerLicense request, APIAuthService service) =>
|
|
{
|
|
throw new NotImplementedException();
|
|
});
|
|
}
|
|
}
|
|
|
|
public class AuthSignin
|
|
{
|
|
public string UserName { get; set; }
|
|
public string Password { get; set; }
|
|
}
|
|
|
|
public class AuthRegister
|
|
{
|
|
public string Username { get; set; }
|
|
public string Password { get; set; }
|
|
public string Email { get; set; }
|
|
}
|
|
|
|
public class AuthUserVerify
|
|
{
|
|
public string Username { get; set; }
|
|
public string Token { get; set; }
|
|
}
|
|
|
|
public class AuthServerLicense
|
|
{
|
|
public string License { get; set; }
|
|
} |