public async Task <Fido2Settings> ExecuteAsync(string context, string requestToken, string locale) { var item = await _cacheItemRepository.GetAsync(context); if (item.RequestToken != requestToken) { throw new CommandValidationException( $"Can not provide settings for FIDO2. Wrong nonce actual '{requestToken}' expected '{item.ResponseToken}'"); } if (item.Status != CacheItemStatus.Approved && item.Status != CacheItemStatus.Initiated && item.Status != CacheItemStatus.Started) { throw new CommandValidationException( $"Can not provide settings for FIDO2. Wrong item status {item.Status}"); } var url = _urlProvider.GetWebAppSignWithCallbackUrl(_urlProvider.GetStartFlowUrl(context), locale, item.RequestToken, item.ResponseToken); return(new Fido2Settings { CredId = item.Fido2CredentialId, UserName = _ownIdCoreConfiguration.Fido2.UserName, UserDisplayName = _ownIdCoreConfiguration.Fido2.UserDisplayName, RelyingPartyId = _ownIdCoreConfiguration.Fido2.RelyingPartyId, RelyingPartyName = _ownIdCoreConfiguration.Fido2.RelyingPartyName, CallbackUrl = url.ToString(), LogLevel = ((int)_ownIdCoreConfiguration.LogLevel).ToString(), LogoUrl = _ownIdCoreConfiguration.LogoUrl?.ToString() }); }