diff --git a/DysonNetwork.Pass/Auth/OpenId/OidcController.cs b/DysonNetwork.Pass/Auth/OpenId/OidcController.cs index 1291aa5..0d8512e 100644 --- a/DysonNetwork.Pass/Auth/OpenId/OidcController.cs +++ b/DysonNetwork.Pass/Auth/OpenId/OidcController.cs @@ -26,16 +26,17 @@ public class OidcController( public async Task OidcLogin( [FromRoute] string provider, [FromQuery] string? returnUrl = "/", - [FromQuery] string? deviceId = null + [FromQuery] string? deviceId = null, + [FromQuery] string? flow = null ) { - logger.LogInformation("OIDC login request for provider {Provider} with returnUrl {ReturnUrl} and deviceId {DeviceId}", provider, returnUrl, deviceId); + logger.LogInformation("OIDC login request for provider {Provider} with returnUrl {ReturnUrl}, deviceId {DeviceId} and flow {Flow}", provider, returnUrl, deviceId, flow); try { var oidcService = GetOidcService(provider); // If the user is already authenticated, treat as an account connection request - if (HttpContext.Items["CurrentUser"] is SnAccount currentUser) + if (flow != "login" && HttpContext.Items["CurrentUser"] is SnAccount currentUser) { var state = Guid.NewGuid().ToString(); var nonce = Guid.NewGuid().ToString();