Challenge retrieve api

This commit is contained in:
LittleSheep 2025-06-18 01:26:34 +08:00
parent 2a5926a94a
commit ca2d37eb39
4 changed files with 16 additions and 4 deletions

View File

@ -74,6 +74,19 @@ public class AuthController(
return challenge; return challenge;
} }
[HttpGet("challenge/{id:guid}")]
public async Task<ActionResult<Challenge>> GetChallenge([FromRoute] Guid id)
{
var challenge = await db.AuthChallenges
.Include(e => e.Account)
.ThenInclude(e => e.Profile)
.FirstOrDefaultAsync(e => e.Id == id);
return challenge is null
? NotFound("Auth challenge was not found.")
: challenge;
}
[HttpGet("challenge/{id:guid}/factors")] [HttpGet("challenge/{id:guid}/factors")]
public async Task<ActionResult<List<AccountAuthFactor>>> GetChallengeFactors([FromRoute] Guid id) public async Task<ActionResult<List<AccountAuthFactor>>> GetChallengeFactors([FromRoute] Guid id)
{ {

View File

@ -355,7 +355,7 @@ public class ConnectionController(
connection.Account, connection.Account,
HttpContext, HttpContext,
deviceId ?? string.Empty); deviceId ?? string.Empty);
return Redirect($"/auth/callback?context={challenge.Id}"); return Redirect($"/auth/callback?challenge={challenge.Id}");
} }
// Register new user // Register new user

View File

@ -291,6 +291,5 @@ public class OidcCallbackData
public string Code { get; set; } = ""; public string Code { get; set; } = "";
public string IdToken { get; set; } = ""; public string IdToken { get; set; } = "";
public string? State { get; set; } public string? State { get; set; }
public string? CodeVerifier { get; set; }
public string? RawData { get; set; } public string? RawData { get; set; }
} }

View File

@ -16,7 +16,7 @@
<script> <script>
(function () { (function () {
const urlParams = new URLSearchParams(window.location.search); const urlParams = new URLSearchParams(window.location.search);
const token = urlParams.get('token'); const token = urlParams.get('challenge');
console.log("Authentication token received."); console.log("Authentication token received.");
@ -36,7 +36,7 @@
// For mobile apps that use custom URI schemes // For mobile apps that use custom URI schemes
try { try {
const customSchemeUrl = `solian://auth/callback?token=${encodeURIComponent(token ?? 'done')}`; const customSchemeUrl = `solian://auth/callback?challenge=${encodeURIComponent(token ?? 'done')}`;
window.location.href = customSchemeUrl; window.location.href = customSchemeUrl;
console.log("Attempting to redirect to custom scheme:", customSchemeUrl); console.log("Attempting to redirect to custom scheme:", customSchemeUrl);
} catch (e) { } catch (e) {