public async Task <GetChallengeLinkResponse> ExecuteAsync(GenerateContextRequest request) { var challengeContext = _identitiesProvider.GenerateContext(); var nonce = _identitiesProvider.GenerateNonce(); // classic flow is not supported request.IsPartial = true; string did = null; string payload = null; FlowType flowType; switch (request.Type) { case ChallengeType.Register: case ChallengeType.Login: flowType = !request.IsPartial ? FlowType.Authorize : FlowType.PartialAuthorize; break; case ChallengeType.Link: var state = await GetLinkState(request.Payload?.ToString()); if (state.ConnectedDevicesCount >= _configuration.MaximumNumberOfConnectedDevices) { return(new GetChallengeLinkResponse(default, _urlProvider.GetWebAppConnectionsUrl().ToString(), default, default, _magicLinkEnabled)); } did = state.DID; flowType = request.IsQr ? FlowType.LinkWithPin : FlowType.Link; break;