This commit is contained in:
nito9999
2026-06-12 15:35:10 -04:00
parent f5716c7160
commit 6706b6f478
60 changed files with 48656 additions and 0 deletions
+85
View File
@@ -0,0 +1,85 @@
using Microsoft.AspNetCore.Mvc;
using FemRec2023.Classes;
using FemRec2023.Classes.DBs;
using FemRec2023.Classes.DBs.DBClasses;
using FemRec2023.Auth;
namespace FemRec2023.Controllers
{
[ApiController]
[Route("/auth")]
public class AuthController : ControllerBase
{
[HttpGet("eac/challenge")]
public IActionResult GetEACChallenge()
{
string challenge = $"\"e\"";
return Ok(challenge);
}
[HttpGet("cachedlogin/forplatformid/{platform}/{platformId}")]
public IActionResult GetCachedLogins(PlayerDBClasses.Platforms platform, ulong platformId)
{
if (PlayerDB.GetLogins(platform, platformId, out var accounts) && accounts.Count > 0)
{
return Ok(accounts);
}
var newPlayer = PlayerDB.CreateAccount(platform, platformId, false); // todo use connect token create acc grant type instead but ts is for now
var newCachedLogin = new List<PlayerDBClasses.CachedLogins>
{
new PlayerDBClasses.CachedLogins
{
accountId = newPlayer.PlayerId,
lastLoginTime = newPlayer.Player.LastLoginAt,
platform = platform,
platformId = platformId.ToString(),
requirePassword = false
}
};
return Ok(newCachedLogin);
}
[HttpPost("connect/token")]
public async Task<IActionResult> ConnectToken(
[FromForm] string grant_type,
[FromForm] long account_id,
[FromForm] string client_id,
[FromForm] string client_secret,
[FromForm] PlayerDBClasses.Platforms platform,
[FromForm] ulong platform_id,
[FromForm] string device_id,
[FromForm] PlayerDBClasses.DeviceClasses? device_class,
[FromForm] DateTime? time,
[FromForm] int? ver,
[FromForm] string build_key,
[FromForm] string asid,
[FromForm] string eac_challenge,
[FromForm] string eac_response,
[FromForm] string platform_auth
)
{
switch (grant_type)
{
case "cached_login":
{
string token = AuthStuff.Encode(account_id);
Console.WriteLine("bitch try to login: who? here: " + account_id);
return Ok(new
{
access_token = token,
error = "",
error_description = "",
refresh_token = "eeeeeeeeeeee",
key = ""
});
}
default:
return BadRequest();
}
}
}
}