CINXE.COM

Getting Started for Developers - FIDO Alliance

<!DOCTYPE html> <html lang="en"> <head><script type="text/javascript" src="https://web-static.archive.org/_static/js/bundle-playback.js?v=7YQSqjSh" charset="utf-8"></script> <script type="text/javascript" src="https://web-static.archive.org/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="https://web-static.archive.org/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://fidoalliance.org/developers/","20210121061408","https://web.archive.org/","web","https://web-static.archive.org/_static/", "1611209648"); </script> <link rel="stylesheet" type="text/css" href="https://web-static.archive.org/_static/css/banner-styles.css?v=p7PEIJWi" /> <link rel="stylesheet" type="text/css" href="https://web-static.archive.org/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style type="text/css"> .heateorSssInstagramBackground{background:radial-gradient(circle at 30% 107%,#fdf497 0,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)} .heateor_sss_horizontal_sharing .heateorSssSharing,.heateor_sss_standard_follow_icons_container .heateorSssSharing{ color: #fff; border-width: 0px; border-style: solid; border-color: transparent; } .heateor_sss_horizontal_sharing .heateorSssTCBackground{ color:#666; } .heateor_sss_horizontal_sharing .heateorSssSharing:hover,.heateor_sss_standard_follow_icons_container .heateorSssSharing:hover{ border-color: transparent; } .heateor_sss_vertical_sharing .heateorSssSharing,.heateor_sss_floating_follow_icons_container .heateorSssSharing{ color: #fff; border-width: 0px; border-style: solid; border-color: transparent; } .heateor_sss_vertical_sharing .heateorSssTCBackground{ color:#666; } .heateor_sss_vertical_sharing .heateorSssSharing:hover,.heateor_sss_floating_follow_icons_container .heateorSssSharing:hover{ border-color: transparent; } @media screen and (max-width:783px) {.heateor_sss_vertical_sharing{display:none!important}}@media screen and (max-width:783px) {.heateor_sss_floating_follow_icons_container{display:none!important}}</style><link rel="alternate" hreflang="ja" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/?lang=ja"/> <link rel="alternate" hreflang="ko" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/?lang=ko"/> <link rel="alternate" hreflang="zh-hans" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/?lang=zh-hans"/> <link rel="alternate" hreflang="en" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/"/> <!-- This site is optimized with the Yoast SEO plugin v15.6.2 - https://yoast.com/wordpress/plugins/seo/ --> <title>Getting Started for Developers - FIDO Alliance</title> <meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"/> <link rel="canonical" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/"/> <meta property="og:locale" content="en_US"/> <meta property="og:type" content="article"/> <meta property="og:title" content="Getting Started for Developers - FIDO Alliance"/> <meta property="og:description" content="For developers with existing webpages or applications that are looking to implement FIDO Authentication, there are two changes that you will have to make to your application: 1) modifying the […]"/> <meta property="og:url" content="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/"/> <meta property="og:site_name" content="FIDO Alliance"/> <meta property="article:modified_time" content="2019-01-25T15:43:51+00:00"/> <meta name="twitter:card" content="summary"/> <meta name="twitter:site" content="@FIDOAlliance"/> <meta name="twitter:label1" content="Est. reading time"> <meta name="twitter:data1" content="6 minutes"> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://web.archive.org/web/20210121061408/https://schema.org","@graph":[{"@type":"Organization","@id":"https://web.archive.org/web/20210121061408/http://fidoalliance.org/#organization","name":"FIDO Alliance","url":"https://web.archive.org/web/20210121061408/http://fidoalliance.org/","sameAs":["https://web.archive.org/web/20210121061408/https://www.linkedin.com/company/the-fido-alliance/","https://web.archive.org/web/20210121061408/https://www.youtube.com/channel/UCbC3HuHhfyqlXR6sBuEHSug","https://web.archive.org/web/20210121061408/https://twitter.com/FIDOAlliance"],"logo":{"@type":"ImageObject","@id":"https://web.archive.org/web/20210121061408/http://fidoalliance.org/#logo","inLanguage":"en-US","url":"https://web.archive.org/web/20210121061408/https://media.fidoalliance.org/wp-content/uploads/2019/05/fido-logo.jpeg","width":1200,"height":296,"caption":"FIDO Alliance"},"image":{"@id":"https://web.archive.org/web/20210121061408/http://fidoalliance.org/#logo"}},{"@type":"WebSite","@id":"https://web.archive.org/web/20210121061408/http://fidoalliance.org/#website","url":"https://web.archive.org/web/20210121061408/http://fidoalliance.org/","name":"FIDO Alliance","description":"","publisher":{"@id":"https://web.archive.org/web/20210121061408/http://fidoalliance.org/#organization"},"potentialAction":[{"@type":"SearchAction","target":"https://web.archive.org/web/20210121061408/http://fidoalliance.org/?s={search_term_string}","query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/#webpage","url":"https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/","name":"Getting Started for Developers - FIDO Alliance","isPartOf":{"@id":"https://web.archive.org/web/20210121061408/http://fidoalliance.org/#website"},"datePublished":"2018-04-10T06:54:04+00:00","dateModified":"2019-01-25T15:43:51+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/"]}]}]}</script> <!-- / Yoast SEO plugin. --> <link rel="dns-prefetch" href="//web.archive.org/web/20210121061408/https://stackpath.bootstrapcdn.com/"/> <link rel="dns-prefetch" href="//web.archive.org/web/20210121061408/https://cdnjs.cloudflare.com/"/> <link rel="dns-prefetch" href="//web.archive.org/web/20210121061408/https://fonts.googleapis.com/"/> <link rel="dns-prefetch" href="//web.archive.org/web/20210121061408/https://use.fontawesome.com/"/> <link rel="dns-prefetch" href="//web.archive.org/web/20210121061408/https://cdn.jsdelivr.net/"/> <link rel="dns-prefetch" href="//web.archive.org/web/20210121061408/https://s.w.org/"/> <link rel="alternate" type="application/rss+xml" title="FIDO Alliance » Feed" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/feed/"/> <link rel="alternate" type="text/calendar" title="FIDO Alliance » iCal Feed" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/events/?ical=1"/> <script type="text/javascript"> window._wpemojiSettings = {"baseUrl":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/s.w.org\/images\/core\/emoji\/13.0.1\/72x72\/","ext":".png","svgUrl":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/s.w.org\/images\/core\/emoji\/13.0.1\/svg\/","svgExt":".svg","source":{"wpemoji":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/fidoalliance.org\/wp-includes\/js\/wp-emoji.js?ver=5.6","twemoji":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/fidoalliance.org\/wp-includes\/js\/twemoji.js?ver=5.6"}}; /** * @output wp-includes/js/wp-emoji-loader.js */ ( function( window, document, settings ) { var src, ready, ii, tests; // Create a canvas element for testing native browser support of emoji. var canvas = document.createElement( 'canvas' ); var context = canvas.getContext && canvas.getContext( '2d' ); /** * Checks if two sets of Emoji characters render the same visually. * * @since 4.9.0 * * @private * * @param {number[]} set1 Set of Emoji character codes. * @param {number[]} set2 Set of Emoji character codes. * * @return {boolean} True if the two sets render the same. */ function emojiSetsRenderIdentically( set1, set2 ) { var stringFromCharCode = String.fromCharCode; // Cleanup from previous test. context.clearRect( 0, 0, canvas.width, canvas.height ); context.fillText( stringFromCharCode.apply( this, set1 ), 0, 0 ); var rendered1 = canvas.toDataURL(); // Cleanup from previous test. context.clearRect( 0, 0, canvas.width, canvas.height ); context.fillText( stringFromCharCode.apply( this, set2 ), 0, 0 ); var rendered2 = canvas.toDataURL(); return rendered1 === rendered2; } /** * Detects if the browser supports rendering emoji or flag emoji. * * Flag emoji are a single glyph made of two characters, so some browsers * (notably, Firefox OS X) don't support them. * * @since 4.2.0 * * @private * * @param {string} type Whether to test for support of "flag" or "emoji". * * @return {boolean} True if the browser can render emoji, false if it cannot. */ function browserSupportsEmoji( type ) { var isIdentical; if ( ! context || ! context.fillText ) { return false; } /* * Chrome on OS X added native emoji rendering in M41. Unfortunately, * it doesn't work when the font is bolder than 500 weight. So, we * check for bold rendering support to avoid invisible emoji in Chrome. */ context.textBaseline = 'top'; context.font = '600 32px Arial'; switch ( type ) { case 'flag': /* * Test for Transgender flag compatibility. This flag is shortlisted for the Emoji 13 spec, * but has landed in Twemoji early, so we can add support for it, too. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly (white flag emoji + transgender symbol). */ isIdentical = emojiSetsRenderIdentically( [ 0x1F3F3, 0xFE0F, 0x200D, 0x26A7, 0xFE0F ], [ 0x1F3F3, 0xFE0F, 0x200B, 0x26A7, 0xFE0F ] ); if ( isIdentical ) { return false; } /* * Test for UN flag compatibility. This is the least supported of the letter locale flags, * so gives us an easy test for full support. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly ([U] + [N]). */ isIdentical = emojiSetsRenderIdentically( [ 0xD83C, 0xDDFA, 0xD83C, 0xDDF3 ], [ 0xD83C, 0xDDFA, 0x200B, 0xD83C, 0xDDF3 ] ); if ( isIdentical ) { return false; } /* * Test for English flag compatibility. England is a country in the United Kingdom, it * does not have a two letter locale code but rather an five letter sub-division code. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly (black flag emoji + [G] + [B] + [E] + [N] + [G]). */ isIdentical = emojiSetsRenderIdentically( [ 0xD83C, 0xDFF4, 0xDB40, 0xDC67, 0xDB40, 0xDC62, 0xDB40, 0xDC65, 0xDB40, 0xDC6E, 0xDB40, 0xDC67, 0xDB40, 0xDC7F ], [ 0xD83C, 0xDFF4, 0x200B, 0xDB40, 0xDC67, 0x200B, 0xDB40, 0xDC62, 0x200B, 0xDB40, 0xDC65, 0x200B, 0xDB40, 0xDC6E, 0x200B, 0xDB40, 0xDC67, 0x200B, 0xDB40, 0xDC7F ] ); return ! isIdentical; case 'emoji': /* * So easy, even a baby could do it! * * To test for Emoji 13 support, try to render a new emoji: Man Feeding Baby. * * The Man Feeding Baby emoji is a ZWJ sequence combining 👨 Man, a Zero Width Joiner and 🍼 Baby Bottle. * * 0xD83D, 0xDC68 == Man emoji. * 0x200D == Zero-Width Joiner (ZWJ) that links the two code points for the new emoji or * 0x200B == Zero-Width Space (ZWS) that is rendered for clients not supporting the new emoji. * 0xD83C, 0xDF7C == Baby Bottle. * * When updating this test for future Emoji releases, ensure that individual emoji that make up the * sequence come from older emoji standards. */ isIdentical = emojiSetsRenderIdentically( [0xD83D, 0xDC68, 0x200D, 0xD83C, 0xDF7C], [0xD83D, 0xDC68, 0x200B, 0xD83C, 0xDF7C] ); return ! isIdentical; } return false; } /** * Adds a script to the head of the document. * * @ignore * * @since 4.2.0 * * @param {Object} src The url where the script is located. * @return {void} */ function addScript( src ) { var script = document.createElement( 'script' ); script.src = src; script.defer = script.type = 'text/javascript'; document.getElementsByTagName( 'head' )[0].appendChild( script ); } tests = Array( 'flag', 'emoji' ); settings.supports = { everything: true, everythingExceptFlag: true }; /* * Tests the browser support for flag emojis and other emojis, and adjusts the * support settings accordingly. */ for( ii = 0; ii < tests.length; ii++ ) { settings.supports[ tests[ ii ] ] = browserSupportsEmoji( tests[ ii ] ); settings.supports.everything = settings.supports.everything && settings.supports[ tests[ ii ] ]; if ( 'flag' !== tests[ ii ] ) { settings.supports.everythingExceptFlag = settings.supports.everythingExceptFlag && settings.supports[ tests[ ii ] ]; } } settings.supports.everythingExceptFlag = settings.supports.everythingExceptFlag && ! settings.supports.flag; // Sets DOMReady to false and assigns a ready function to settings. settings.DOMReady = false; settings.readyCallback = function() { settings.DOMReady = true; }; // When the browser can not render everything we need to load a polyfill. if ( ! settings.supports.everything ) { ready = function() { settings.readyCallback(); }; /* * Cross-browser version of adding a dom ready event. */ if ( document.addEventListener ) { document.addEventListener( 'DOMContentLoaded', ready, false ); window.addEventListener( 'load', ready, false ); } else { window.attachEvent( 'onload', ready ); document.attachEvent( 'onreadystatechange', function() { if ( 'complete' === document.readyState ) { settings.readyCallback(); } } ); } src = settings.source || {}; if ( src.concatemoji ) { addScript( src.concatemoji ); } else if ( src.wpemoji && src.twemoji ) { addScript( src.twemoji ); addScript( src.wpemoji ); } } } )( window, document, window._wpemojiSettings ); </script> <style type="text/css"> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 .07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel="stylesheet" id="formidable-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/formidable/css/formidableforms.css?ver=1151622" type="text/css" media="all"/> <link rel="stylesheet" id="sweetalert2-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/user-registration/assets/css/sweetalert2/sweetalert2.min.css?ver=8.17.1" type="text/css" media="all"/> <link rel="stylesheet" id="user-registration-general-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/user-registration/assets/css/user-registration.css?ver=1.9.3" type="text/css" media="all"/> <link rel="stylesheet" id="user-registration-smallscreen-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/user-registration/assets/css/user-registration-smallscreen.css?ver=1.9.3" type="text/css" media="only screen and (max-width: 768px)"/> <link rel="stylesheet" id="user-registration-my-account-layout-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/user-registration/assets/css/my-account-layout.css?ver=1.9.3" type="text/css" media="all"/> <link rel="stylesheet" id="dashicons-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-includes/css/dashicons.css?ver=5.6" type="text/css" media="all"/> <link rel="stylesheet" id="tribe-common-skeleton-style-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/the-events-calendar/common/src/resources/css/common-skeleton.min.css?ver=4.12.15.1" type="text/css" media="all"/> <link rel="stylesheet" id="tribe-tooltip-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/the-events-calendar/common/src/resources/css/tooltip.min.css?ver=4.12.15.1" type="text/css" media="all"/> <link rel="stylesheet" id="wp-block-library-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-includes/css/dist/block-library/style.css?ver=5.6" type="text/css" media="all"/> <link rel="stylesheet" id="wpdm-font-awesome-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/download-manager/assets/fontawesome/css/all.min.css?ver=5.6" type="text/css" media="all"/> <link rel="stylesheet" id="wpdm-front-bootstrap-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/download-manager/assets/bootstrap/css/bootstrap.min.css?ver=5.6" type="text/css" media="all"/> <link rel="stylesheet" id="wpdm-front-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/download-manager/assets/css/front.css?ver=5.6" type="text/css" media="all"/> <link rel="stylesheet" id="theme-my-login-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/theme-my-login/assets/styles/theme-my-login.css?ver=7.1.2" type="text/css" media="all"/> <link rel="stylesheet" id="cookie-consent-style-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/uk-cookie-consent/assets/css/style.css?ver=5.6" type="text/css" media="all"/> <link rel="stylesheet" id="wpml-legacy-horizontal-list-0-css" href="//web.archive.org/web/20210121061408cs_/https://fidoalliance.org/wp-content/plugins/sitepress-multilingual-cms/templates/language-switchers/legacy-list-horizontal/style.css?ver=1" type="text/css" media="all"/> <link rel="stylesheet" id="wpml-menu-item-0-css" href="//web.archive.org/web/20210121061408cs_/https://fidoalliance.org/wp-content/plugins/sitepress-multilingual-cms/templates/language-switchers/menu-item/style.css?ver=1" type="text/css" media="all"/> <link rel="stylesheet" id="ivory-search-styles-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/add-search-to-menu/public/css/ivory-search.min.css?ver=4.5.10" type="text/css" media="all"/> <link rel="stylesheet" id="cms-navigation-style-base-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/wpml-cms-nav/res/css/cms-navigation-base.css?ver=1.5.5" type="text/css" media="screen"/> <link rel="stylesheet" id="cms-navigation-style-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/wpml-cms-nav/res/css/cms-navigation.css?ver=1.5.5" type="text/css" media="screen"/> <link rel="stylesheet" id="bootstrap-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/css/min/bootstrap.min.css?ver=5.6" type="text/css" media="all"/> <link rel="stylesheet" id="style-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/css/min/style.min.css?ver=5.6" type="text/css" media="all"/> <link rel="stylesheet" id="googlefonts-css" href="//web.archive.org/web/20210121061408cs_/https://fonts.googleapis.com/css?family=Lato%3A300%2C400%2C700%2C900%7CRoboto%3A300%2C400%2C700%2C900&amp;ver=5.6" type="text/css" media="all"/> <link rel="stylesheet" id="fontawesome-css" href="//web.archive.org/web/20210121061408cs_/https://use.fontawesome.com/releases/v5.3.1/css/all.css?ver=5.6" type="text/css" media="all" crossorigin="anonymous" integrity=""/> <link rel="stylesheet" id="magnefic-popup-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/css/magnific-popup.css?ver=5.6" type="text/css" media="all"/> <link rel="stylesheet" id="heateor_sss_frontend_css-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/sassy-social-share/public/css/sassy-social-share-public.css?ver=3.3.16" type="text/css" media="all"/> <link rel="stylesheet" id="heateor_sss_sharing_default_svg-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/sassy-social-share/admin/css/sassy-social-share-svg.css?ver=3.3.16" type="text/css" media="all"/> <link rel="stylesheet" id="tablepress-default-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/tablepress/css/default.css?ver=1.12" type="text/css" media="all"/> <link rel="stylesheet" id="tablepress-custom-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/tablepress-custom.css?ver=7" type="text/css" media="all"/> <link rel="stylesheet" id="acf-global-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/acf/assets/css/acf-global.css?ver=5.8.2" type="text/css" media="all"/> <link rel="stylesheet" id="acf-input-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/acf/assets/css/acf-input.css?ver=5.8.2" type="text/css" media="all"/> <link rel="stylesheet" id="acf-pro-input-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/acf/pro/assets/css/acf-pro-input.css?ver=5.8.2" type="text/css" media="all"/> <link rel="stylesheet" id="select2-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/user-registration/assets/css/select2.css?ver=1.9.3" type="text/css" media="all"/> <link rel="stylesheet" id="acf-datepicker-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/acf/assets/inc/datepicker/jquery-ui.min.css?ver=1.11.4" type="text/css" media="all"/> <link rel="stylesheet" id="acf-timepicker-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/acf/assets/inc/timepicker/jquery-ui-timepicker-addon.min.css?ver=1.6.1" type="text/css" media="all"/> <link rel="stylesheet" id="wp-color-picker-css" href="https://web.archive.org/web/20210121061408cs_/https://fidoalliance.org/wp-admin/css/color-picker.css?ver=5.6" type="text/css" media="all"/> <link rel="stylesheet" id="acf-input-font-awesome-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/advanced-custom-fields-font-awesome/assets/css/input.css?ver=3.1.1" type="text/css" media="all"/> <link rel="stylesheet" id="acf-input-font-awesome_library-css" href="https://web.archive.org/web/20210121061408cs_/https://cdn.jsdelivr.net/fontawesome/4.7.0/css/font-awesome.min.css?ver=5.6" type="text/css" media="all"/> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-includes/js/jquery/jquery.js?ver=3.5.1" id="jquery-core-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-includes/js/jquery/jquery-migrate.js?ver=3.3.2" id="jquery-migrate-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/plugins/sitepress-multilingual-cms/res/js/jquery.cookie.js?ver=4.4.8" id="jquery.cookie-js"></script> <script type="text/javascript" id="wpml-cookie-js-extra"> /* <![CDATA[ */ var wpml_cookies = {"wp-wpml_current_language":{"value":"en","expires":1,"path":"\/"}}; var wpml_cookies = {"wp-wpml_current_language":{"value":"en","expires":1,"path":"\/"}}; /* ]]> */ </script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/plugins/sitepress-multilingual-cms/res/js/cookies/language-cookie.js?ver=4.4.8" id="wpml-cookie-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/plugins/download-manager/assets/bootstrap/js/bootstrap.bundle.min.js?ver=5.6" id="wpdm-front-bootstrap-js"></script> <script type="text/javascript" id="frontjs-js-extra"> /* <![CDATA[ */ var wpdm_url = {"home":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/fidoalliance.org\/","site":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/fidoalliance.org\/","ajax":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/fidoalliance.org\/wp-admin\/admin-ajax.php"}; var wpdm_asset = {"spinner":"<i class=\"fas fa-sun fa-spin\"><\/i>"}; /* ]]> */ </script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/plugins/download-manager/assets/js/front.js?ver=3.1.12" id="frontjs-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/plugins/download-manager/assets/js/chosen.jquery.min.js?ver=5.6" id="jquery-choosen-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-includes/js/jquery/ui/core.js?ver=1.12.1" id="jquery-ui-core-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-includes/js/jquery/ui/datepicker.js?ver=1.12.1" id="jquery-ui-datepicker-js"></script> <script type="text/javascript" id="jquery-ui-datepicker-js-after"> jQuery(document).ready(function(jQuery){jQuery.datepicker.setDefaults({"closeText":"Close","currentText":"Today","monthNames":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthNamesShort":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"nextText":"Next","prevText":"Previous","dayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dayNamesShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dayNamesMin":["S","M","T","W","T","F","S"],"dateFormat":"MM d, yy","firstDay":0,"isRTL":false});}); </script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-includes/js/jquery/ui/mouse.js?ver=1.12.1" id="jquery-ui-mouse-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-includes/js/jquery/ui/sortable.js?ver=1.12.1" id="jquery-ui-sortable-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-includes/js/jquery/ui/resizable.js?ver=1.12.1" id="jquery-ui-resizable-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/acf/assets/js/acf-input.js?ver=5.8.2" id="acf-input-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/acf/pro/assets/js/acf-pro-input.js?ver=5.8.2" id="acf-pro-input-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/acf/assets/inc/select2/4/select2.full.js?ver=4.0" id="select2-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/acf/assets/inc/timepicker/jquery-ui-timepicker-addon.min.js?ver=1.6.1" id="acf-timepicker-js"></script> <script type="text/javascript" id="acf-input-font-awesome-js-extra"> /* <![CDATA[ */ var ACFFA = {"major_version":"4"}; /* ]]> */ </script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/plugins/advanced-custom-fields-font-awesome/assets/js/input-v5.js?ver=3.1.1" id="acf-input-font-awesome-js"></script> <link rel="https://api.w.org/" href="https://fidoalliance.org/wp-json/"/><link rel="alternate" type="application/json" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/wp-json/wp/v2/pages/10295"/><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://fidoalliance.org/xmlrpc.php?rsd"/> <link rel="shortlink" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/?p=10295"/> <link rel="alternate" type="application/json+oembed" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Ffidoalliance.org%2Fdevelopers%2F"/> <link rel="alternate" type="text/xml+oembed" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Ffidoalliance.org%2Fdevelopers%2F&amp;format=xml"/> <meta name="generator" content="WPML ver:4.4.8 stt:60,1,28,29;"/> <script> var wpdm_site_url = 'https://web.archive.org/web/20210121061408/https://fidoalliance.org/'; var wpdm_home_url = 'https://web.archive.org/web/20210121061408/https://fidoalliance.org/'; var ajax_url = 'https://web.archive.org/web/20210121061408/https://fidoalliance.org/wp-admin/admin-ajax.php'; var wpdm_ajax_url = 'https://web.archive.org/web/20210121061408/https://fidoalliance.org/wp-admin/admin-ajax.php'; var wpdm_ajax_popup = '0'; </script> <style> .wpdm-download-link.btn.btn-primary.{ border-radius: 4px; } </style> <style id="ctcc-css" type="text/css" media="screen"> #catapult-cookie-bar { box-sizing: border-box; max-height: 0; opacity: 0; z-index: 99999; overflow: hidden; color: #ffffff; position: fixed; left: 0; top: 0; width: 100%; background-color: #004b4e; } #catapult-cookie-bar a { color: #ffffff; } #catapult-cookie-bar .x_close span { background-color: #ffffff; } button#catapultCookie { background:#fab94d; color: #ffffff; border: 0; padding: 6px 9px; border-radius: 3px; } #catapult-cookie-bar h3 { color: #ffffff; } .has-cookie-bar #catapult-cookie-bar { opacity: 1; max-height: 999px; min-height: 30px; }</style><script type="text/javascript">document.documentElement.className += " js";</script> <meta name="tec-api-version" content="v1"><meta name="tec-api-origin" content="https://fidoalliance.org"><link rel="https://theeventscalendar.com/" href="https://fidoalliance.org/wp-json/tribe/events/v1/"/> <style type="text/css" id="wp-custom-css"> .user-registration-MyAccount-content .acf-label label { text-align: left; } #InsertRecordPrimary_Contact, #InsertRecordTechnical_Contact,#InsertRecordBilling_Contact,#InsertRecordMarketing_Contact{ position:initial; } input[type=checkbox]{position:initial !important;} body.page-id-7169 .hustle-ui { display: none!important; opacity: 0!important; } body.page-id-7165 .hustle-ui { display: none!important; opacity: 0!important; } .dataTables_wrapper .tablepress { width: 100% !important; } .dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter, .dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_paginate, #tablepress-16_filter{ display:none !important; } .page-id-32156 #main > .section-spec-intro { display: none; } .page-id-32156 .card-content h2 { font-size: 48px; font-weight: 300 !important; margin-bottom: 20px; padding-left: 10px; } .page-id-32156 .card-content h2 b { font-weight: bold !important; position: relative; } .page-id-32156 .card-content h2 b:after { content: ""; position: absolute; bottom: -10px; left: -10px; height: 10px; background: #febf3b; width: 150%; } .page-id-32156 .content-wrap > section { padding-bottom: 0 !important; } .page-id-32156 .content-wrap .main-expert-container { padding-top: 0 !important; } .page-id-32156 .section-video-case.custom { background: transparent; text-align: left; } .page-id-32156 .section-video-case.custom .card-content .row-btn .btn { color: #fff; background: #ffbf3b; } .page-id-32156 .content-wrap > section:last-child { padding: 0 0 4.5rem !important; } @media only screen and (max-width: 991px) { .page-id-32156 .copy-block br { display: none; } } @media only screen and (max-width: 767px) { .page-id-32156 .card-content h2 b:after { bottom: 3px; height: 5px; } } .ur-form-row .form-row { display: block !important; } span.badge.badge-info.Employees { background:#ffbf3b !important; } span.badge.badge-primary.Recognitions { background:#004b4e !important; } .user-registration-information footer,.user-registration-information .wpml-ls { display: none !important; } </style> <meta name="generator" content="WordPress Download Manager 3.1.12"/> <style> @import url('https://web.archive.org/web/20210121061408cs_/https://fonts.googleapis.com/css?family=Rubik:400,500'); .w3eden .fetfont, .w3eden .btn, .w3eden .btn.wpdm-front h3.title, .w3eden .wpdm-social-lock-box .IN-widget a span:last-child, .w3eden #xfilelist .panel-heading, .w3eden .wpdm-frontend-tabs a, .w3eden .alert:before, .w3eden .panel .panel-heading, .w3eden .discount-msg, .w3eden .panel.dashboard-panel h3, .w3eden #wpdm-dashboard-sidebar .list-group-item, .w3eden #package-description .wp-switch-editor, .w3eden .w3eden.author-dashbboard .nav.nav-tabs li a, .w3eden .wpdm_cart thead th, .w3eden #csp .list-group-item, .w3eden .modal-title { font-family: Rubik, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; text-transform: uppercase; font-weight: 500; } .w3eden #csp .list-group-item{ text-transform: unset; } </style> <style> :root{ --color-primary: #4a8eff; --color-primary-rgb: 74, 142, 255; --color-primary-hover: #4a8eff; --color-primary-active: #4a8eff; --color-secondary: #4a8eff; --color-secondary-rgb: 74, 142, 255; --color-secondary-hover: #4a8eff; --color-secondary-active: #4a8eff; --color-success: #18ce0f; --color-success-rgb: 24, 206, 15; --color-success-hover: #4a8eff; --color-success-active: #4a8eff; --color-info: #2CA8FF; --color-info-rgb: 44, 168, 255; --color-info-hover: #2CA8FF; --color-info-active: #2CA8FF; --color-warning: #f29e0f; --color-warning-rgb: 242, 158, 15; --color-warning-hover: orange; --color-warning-active: orange; --color-danger: #ff5062; --color-danger-rgb: 255, 80, 98; --color-danger-hover: #ff5062; --color-danger-active: #ff5062; --color-green: #30b570; --color-blue: #0073ff; --color-purple: #8557D3; --color-red: #ff5062; --color-muted: rgba(69, 89, 122, 0.6); --wpdm-font: Rubik, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; } .wpdm-download-link.btn.btn-primary{ border-radius: 4px; } </style> <script src="https://web.archive.org/web/20210121061408js_/https://code.jquery.com/jquery-3.5.1.js" integrity="" crossorigin="anonymous"></script> <script src="https://web.archive.org/web/20210121061408js_/https://unpkg.com/isotope-layout@3/dist/isotope.pkgd.min.js"></script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://web.archive.org/web/20210121061408/https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5C9K83P');</script> <!-- End Google Tag Manager --></head> <body class="page-template-default page page-id-10295 page-parent user-registration-page tribe-no-js tribe-theme-fidoalliance fidoalliance page-developers"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://web.archive.org/web/20210121061408if_/https://www.googletagmanager.com/ns.html?id=GTM-5C9K83P" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div id="wrapper"> <div class="header-top bg-success"> <div class="header-top-container"> <div class="row align-items-center mx-0 py-2"> <div class="col-2 pl-0"> <div class="lang-setting align-items-center d-flex"> <span>LANGUAGE</span><i class="icon-arrow-down ml-2"></i> <div class="card-lang bg-success align-items-center justify-content-left p-2"> <ul class="list-lang m-0 p-0"> <li id="menu-item-wpml-ls-548-ja" class="menu-item wpml-ls-slot-548 wpml-ls-item wpml-ls-item-ja wpml-ls-menu-item wpml-ls-first-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-548-ja"><a title="日本語" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/?lang=ja"><img class="wpml-ls-flag" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/plugins/sitepress-multilingual-cms/res/flags/ja.png" alt=""><span class="wpml-ls-native" lang="ja">日本語</span></a></li> <li id="menu-item-wpml-ls-548-ko" class="menu-item wpml-ls-slot-548 wpml-ls-item wpml-ls-item-ko wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-548-ko"><a title="한국어" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/?lang=ko"><img class="wpml-ls-flag" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/plugins/sitepress-multilingual-cms/res/flags/ko.png" alt=""><span class="wpml-ls-native" lang="ko">한국어</span></a></li> <li id="menu-item-wpml-ls-548-zh-hans" class="menu-item wpml-ls-slot-548 wpml-ls-item wpml-ls-item-zh-hans wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-548-zh-hans"><a title="简体中文" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/?lang=zh-hans"><img class="wpml-ls-flag" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/flags/flag1.png" alt=""><span class="wpml-ls-native" lang="zh-hans">简体中文</span></a></li> <li id="menu-item-wpml-ls-548-en" class="menu-item wpml-ls-slot-548 wpml-ls-item wpml-ls-item-en wpml-ls-current-language wpml-ls-menu-item wpml-ls-last-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-548-en"><a title="English" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/"><img class="wpml-ls-flag" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/flags/en.png" alt=""><span class="wpml-ls-native" lang="en">English</span></a></li> </ul> </div> </div> </div> <div class="col-10"> <div class="row justify-content-end"> <div class="nav"> <ul class="nav-top-list d-flex p-0 m-0"> <li id="menu-item-15086" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15086"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/what-is-fido/">What is FIDO?</a></li> <li id="menu-item-15645" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15645"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/specifications/">Specifications</a></li> <li id="menu-item-21028" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21028"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/knowledge-base/">Knowledge Base</a></li> <li id="menu-item-15088" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15088"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/members/membership-application/">Join</a></li> </ul> </div> </div> </div> </div> </div> </div> <header id="header" class="sticky-top"> <div class="header-bottom px-0 "> <div class="header-bottom-container"> <nav class="navbar align-items-center justify-content-between navbar-expand-lg navbar-dark "> <div class="brand-container p-0 m-0"> <a class="navbar-brand" href="/web/20210121061408/https://fidoalliance.org/"><img src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/FIDO_Alliance_Logo-1.svg" width="194" height="40" alt="FIDO Alliance"></a> </div> <div class="nav-container w-100 d-flex align-items-center"> <div class="nav-wrapper w-100 m-0 "> <ul class="nav-list w-100 justify-content-end"> <li class="px-lg-2 px-xl-4 py-0"> <div class="nav-item"><span>The Alliance</span> <i class="icon-arrow-down"></i></div> <div class="drop-conteiner px-lg-3 px-3 pb-4 pt-3"> <div class="row d-flex justify-content-between"> <div class="col-sm-6 col-lg-4 col-xl-3"> <strong class="pb-2 d-block">About FIDO Alliance</strong> <ul class="m-0 p-0 col-nav-menu"> <li id="menu-item-15073" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15073"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/overview/">Alliance Overview</a></li> <li id="menu-item-15074" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15074"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/overview/history/">History of FIDO Alliance</a></li> <li id="menu-item-30353" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-30353"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/overview/leadership/">FIDO Leadership</a></li> <li id="menu-item-20946" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20946"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/overview/legal/">Legal &#038; Logo Usage</a></li> <li id="menu-item-15565" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15565"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/contact/">Contact Us</a></li> </ul> </div> <div class="col-sm-6 col-lg-4 col-xl-3"> <strong class="pb-2 d-block">Our Membership</strong> <ul class="m-0 p-0 col-nav-menu"> <li id="menu-item-15076" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15076"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/members/">FIDO Members</a></li> <li id="menu-item-15077" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15077"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/members/liaison/">Liaison Partners</a></li> <li id="menu-item-15079" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15079"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/members/working-groups/">Working Groups</a></li> <li id="menu-item-15080" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15080"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/members/committees-and-study-groups/">Committees and Study Groups</a></li> </ul> </div> <div class="col-sm-6 col-lg-4 col-xl-3"> <strong class="pb-2 d-block">Join FIDO Alliance</strong> <ul class="m-0 p-0 col-nav-menu"> <li id="menu-item-15081" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15081"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/members/membership-benefits/">Membership Benefits</a></li> <li id="menu-item-15082" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15082"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/members/membership-application/">Membership Application</a></li> </ul> <a class="btn mb-3 mt-3" href="/web/20210121061408/https://fidoalliance.org/newsletter-sign-up/">Newsletter Sign-Up <i class="icon-arrow-right-light ml-2"></i></a> </div> <div class="col-sm-6 col-lg-4 col-xl-3"> <strong class="pb-2 d-block">FIDO Explained</strong> <a href="/web/20210121061408/https://fidoalliance.org/fido-explained/"><img class="py-3" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/mask-bg-270x161.png" alt=""></a> </div> </div> </div> </li> <li class="px-lg-2 px-xl-4 py-0"> <div class="nav-item"><span>Standards &amp; Technology</span> <i class="icon-arrow-down"></i></div> <div class="drop-conteiner px-lg-3 px-3 pb-4 pt-3"> <div class="row d-flex justify-content-between"> <div class="col-sm-6 col-lg-4 col-xl-3"> <strong class="pb-2 d-block">Work Areas</strong> <ul class="m-0 p-0 col-nav-menu"> <li id="menu-item-27939" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27939"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/fido-authentication/">FIDO Authentication</a></li> <li id="menu-item-27938" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27938"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/identity-verification-binding/">Identity Verification &#038; Binding</a></li> <li id="menu-item-27937" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27937"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/internet-of-things/">Internet of Things</a></li> </ul> </div> <div class="col-sm-6 col-lg-4 col-xl-3"> <strong class="pb-2 d-block">FIDO Authentication</strong> <ul class="m-0 p-0 col-nav-menu"> <li id="menu-item-15091" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15091"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/how-fido-works/">How FIDO Works</a></li> <li id="menu-item-15090" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15090"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/key-differentiators/">What Makes FIDO Different?</a></li> <li id="menu-item-27185" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27185"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/fido2/">FIDO2: WebAuthn &#038; CTAP</a></li> <li id="menu-item-27940" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27940"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/metadata/">Metadata Service</a></li> </ul> </div> <div class="col-sm-6 col-lg-4 col-xl-3"> <strong class="pb-2 d-block">Specifications</strong> <ul class="m-0 p-0 col-nav-menu"> <li id="menu-item-15646" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15646"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/specifications/">Specifications Overview</a></li> <li id="menu-item-15094" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15094"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/specifications/download/">Download Specifications</a></li> </ul> </div> <div class="col-sm-6 col-lg-4 col-xl-3"> <strong class="pb-2 d-block">Developers</strong> <ul class="m-0 p-0 col-nav-menu"> <li id="menu-item-15095" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-10295 current_page_item menu-item-15095"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/" aria-current="page">Getting Started</a></li> <li id="menu-item-15096" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15096"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/resources/">Developer Resources</a></li> </ul> </div> </div> </div> </li> <li class="px-lg-2 px-xl-4 py-0"> <div class="nav-item"><span>Discover FIDO</span> <i class="icon-arrow-down"></i></div> <div class="drop-conteiner px-3 pb-4 pt-3"> <div class="row"> <div class="col-sm-6 col-lg-4 col-xl-3"> <strong class="pb-2 d-block">Getting Started</strong> <a class="btn mb-3 mt-3" href="/web/20210121061408/https://fidoalliance.org/knowledge-base/">Knowledge Base <i class="icon-arrow-right-light ml-2"></i></a> <ul class="m-0 p-0 col-nav-menu"> <li id="menu-item-21040" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21040"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/category/intro-fido/">Intro to FIDO</a></li> <li id="menu-item-21042" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21042"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/category/building-the-business-case/">Building the Business Case</a></li> <li id="menu-item-21043" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21043"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/category/buying-building-partnering/">Buying, Building &#038; Partnering</a></li> <li id="menu-item-21044" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21044"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/category/implementation-deployment/">Implementation &#038; Deployment</a></li> </ul> </div> <div class="col-sm-6 col-lg-4 col-xl-3"> <strong class="pb-2 d-block">Adoption</strong> <ul class="m-0 p-0 col-nav-menu"> <li id="menu-item-25957" class="menu-item menu-item-type-taxonomy menu-item-object-content-type menu-item-25957"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/content/case-study/">FIDO Case Studies</a></li> <li id="menu-item-15889" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15889"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/adoption/market-solutions/">Market Solutions</a></li> <li id="menu-item-15891" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15891"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/adoption/policy-government/">Government &#038; Public Policy</a></li> <li id="menu-item-15895" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15895"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/psd2-compliance/">PSD2 Compliance</a></li> <li id="menu-item-20743" class="menu-item menu-item-type-taxonomy menu-item-object-product-category menu-item-20743"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/product-category/commercial-deployment/">Commercial Deployment</a></li> <li id="menu-item-31998" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-31998"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/fido-government-deployments-and-recognitions/">FIDO Government Deployments and Recognitions</a></li> </ul> </div> <div class="col-12 col-xl-6"> <strong class="pb-2 d-block">Resources</strong> <div class="row m-0 p-0 d-flex justify-content-between flex-wrap"> <div class="py-2 col-6 col-lg-4"><a class="card-img d-flex align-items-center justify-content-end flex-column" style="background-image: url(https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/Showcase.png)" href="/web/20210121061408/https://fidoalliance.org/fido-certified-showcase/"><span>Showcase</span> </a></div> <div class="py-2 col-6 col-lg-4"><a class="card-img d-flex align-items-center justify-content-end flex-column" style="background-image: url(https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/Blogs.png)" href="/web/20210121061408/https://fidoalliance.org/content/research/"><span>Research</span> </a></div> <div class="py-2 col-6 col-lg-4"><a class="card-img d-flex align-items-center justify-content-end flex-column" style="background-image: url(https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/Videos.png)" href="/web/20210121061408/https://fidoalliance.org/content/video/"><span>Videos</span> </a></div> <div class="py-2 col-6 col-lg-4"><a class="card-img d-flex align-items-center justify-content-end flex-column" style="background-image: url(https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/White-Papers.png)" href="/web/20210121061408/https://fidoalliance.org/content/white-paper/"><span>White Papers</span> </a></div> <div class="py-2 col-6 col-lg-4"><a class="card-img d-flex align-items-center justify-content-end flex-column" style="background-image: url(https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/Presentations.png)" href="/web/20210121061408/https://fidoalliance.org/content/presentation/"><span>Presentations</span> </a></div> <div class="py-2 col-6 col-lg-4"><a class="card-img d-flex align-items-center justify-content-end flex-column" style="background-image: url(https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/FAQs-1-170x110.png)" href="/web/20210121061408/https://fidoalliance.org/faqs/"><span>FAQ</span> </a></div> </div> </div> </div> </div> </li> <li class="px-lg-2 px-xl-4 py-0"> <div class="nav-item"><span>FIDO® Certified</span> <i class="icon-arrow-down"></i></div> <div class="drop-conteiner px-lg-3 px-3 pb-4 pt-3"> <div class="row d-flex justify-content-between"> <div class="col-sm-6 col-lg-4 col-xl-3"> <strong class="pb-2 d-block">Certification Programs</strong> <ul class="m-0 p-0 col-nav-menu"> <li id="menu-item-15871" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15871"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/certification/">Certification Overview</a></li> <li id="menu-item-20879" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20879"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/certification/getting-started/">Getting Started</a></li> <li id="menu-item-15870" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15870"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/certification/secretariat/">Secretariat</a></li> <li id="menu-item-20578" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20578"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/certification/mark-usage/">Trademark Usage</a></li> </ul> </div> <div class="col-sm-6 col-lg-4 col-xl-3"> <strong class="pb-2 d-block">Get Certified</strong> <ul class="m-0 p-0 col-nav-menu"> <li id="menu-item-15867" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15867"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/certification/functional-certification/">Functional Certification</a></li> <li id="menu-item-15868" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15868"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/certification/authenticator-certification-levels/">Certified Authenticator Levels</a></li> <li id="menu-item-15869" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15869"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/certification/biometric-component-certification/">Biometric Component Certification</a></li> <li id="menu-item-27898" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27898"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/certification/certification-maintenance-and-updates/">Certification Maintenance and Updates</a></li> <li id="menu-item-21005" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21005"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/certification/interoperability-testing/">Interoperability Testing</a></li> <li id="menu-item-20924" class="menu-item menu-item-type-taxonomy menu-item-object-tribe_events_cat menu-item-20924"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/events/category/interop/">Interop Events</a></li> </ul> </div> <div class="col-sm-6 col-lg-4 col-xl-3"> <strong class="pb-2 d-block">Certified Products</strong> <ul class="m-0 p-0 col-nav-menu"> <li id="menu-item-15508" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15508"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/certification/fido-certified-products/">FIDO® Certified Products</a></li> <li id="menu-item-15509" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15509"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/fido-certified-showcase/">FIDO Certified Showcase</a></li> </ul> </div> <div class="col-sm-6 col-lg-4 col-xl-3"> <strong class="pb-2 d-block"></strong> <a href="/web/20210121061408/https://fidoalliance.org/certification"><img class="py-3" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/Nav_FIDO-Certified.png" alt=""></a> </div> </div> </div> </li> <li class="px-lg-2 px-xl-4 py-0"> <div class="nav-item"><span>News &amp; Events</span> <i class="icon-arrow-down"></i></div> <div class="drop-conteiner drop-conteiner-min-2-cols px-3 pb-4 pt-3"> <div class="row"> <div class="col-12 col-sm-6"> <strong class="pb-2 d-block">Latest Updates</strong> <ul class="m-0 p-0 col-nav-menu"> <li id="menu-item-15481" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15481"><a href="/web/20210121061408/https://fidoalliance.org/events/">Events Calendar</a></li> <li id="menu-item-25955" class="menu-item menu-item-type-taxonomy menu-item-object-content-type menu-item-25955"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/content/fido-in-the-news/">FIDO in the News</a></li> <li id="menu-item-25954" class="menu-item menu-item-type-taxonomy menu-item-object-content-type menu-item-25954"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/content/press-release/">FIDO Press Releases</a></li> <li id="menu-item-15914" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15914"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/press-center/">Press Center</a></li> <li id="menu-item-25956" class="menu-item menu-item-type-taxonomy menu-item-object-content-type menu-item-25956"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/content/blog/">FIDO Blog</a></li> </ul> </div> <div class="col-12 col-sm-6"> <strong class="pb-2 d-block"></strong> <a href="https://web.archive.org/web/20210121061408/https://www.youtube.com/c/TheFIDOAlliance/playlists?view_as=subscriber" target="_blank"> <img class="py-3" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/2020/12/Authen__YouTube-Ad-1-270x197.png" alt=""> </a> </div> </div> </div> </li> </ul> <ul class="nav-top-list w-100 align-self-start mb-0"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15086"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/what-is-fido/">What is FIDO?</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15645"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/specifications/">Specifications</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21028"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/knowledge-base/">Knowledge Base</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15088"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/members/membership-application/">Join</a></li> </ul> <div class="card-mobile-bottom justify-content-between align-items-center"> <div class="lang-setting flex-column align-items-start justify-content-between py-3"> <div class="d-flex align-items-center justify-content-between"><span class="w-100">Language</span><i class="icon-arrow-down ml-2"></i></div> <div class="card-lang align-items-center justify-content-center p-4"> <ul class="list-lang m-0 p-0"> <li class="menu-item wpml-ls-slot-548 wpml-ls-item wpml-ls-item-ja wpml-ls-menu-item wpml-ls-first-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-548-ja"><a title="日本語" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/?lang=ja"><img class="wpml-ls-flag" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/plugins/sitepress-multilingual-cms/res/flags/ja.png" alt=""><span class="wpml-ls-native" lang="ja">日本語</span></a></li> <li class="menu-item wpml-ls-slot-548 wpml-ls-item wpml-ls-item-ko wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-548-ko"><a title="한국어" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/?lang=ko"><img class="wpml-ls-flag" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/plugins/sitepress-multilingual-cms/res/flags/ko.png" alt=""><span class="wpml-ls-native" lang="ko">한국어</span></a></li> <li class="menu-item wpml-ls-slot-548 wpml-ls-item wpml-ls-item-zh-hans wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-548-zh-hans"><a title="简体中文" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/?lang=zh-hans"><img class="wpml-ls-flag" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/flags/flag1.png" alt=""><span class="wpml-ls-native" lang="zh-hans">简体中文</span></a></li> <li class="menu-item wpml-ls-slot-548 wpml-ls-item wpml-ls-item-en wpml-ls-current-language wpml-ls-menu-item wpml-ls-last-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-548-en"><a title="English" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/"><img class="wpml-ls-flag" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/flags/en.png" alt=""><span class="wpml-ls-native" lang="en">English</span></a></li> <!-- <li><a class="d-flex align-items-center py-1 py-lg-3" href="#"><img src="images/flag1.png" alt=""> <p class="mb-0 ml-3">简体中文</p> </a></li> <li><a class="d-flex align-items-center py-1 py-lg-3" href="#"><img src="images/flag2.png" alt=""> <p class="mb-0 ml-3">English</p> </a></li> <li><a class="d-flex align-items-center py-1 py-lg-3" href="#"><img src="images/flag3.png" alt=""> <p class="mb-0 ml-3">日本語</p> </a></li> --> </ul> </div> </div> <div class="search-mobile"> <a href="#" class="search-mobile-opener bg-gray ml-3"> <span>search</span> <i class="icon-search"></i></a> <div class="row-mobile-form"> <div class="header-search d-flex align-items-center justify-content-center w-100 h-100"> <style type="text/css"> .is-form-id-28805 .is-search-input::-webkit-input-placeholder { color: #ffffff !important; } .is-form-id-28805 .is-search-input:-moz-placeholder { color: #ffffff !important; opacity: 1; } .is-form-id-28805 .is-search-input::-moz-placeholder { color: #ffffff !important; opacity: 1; } .is-form-id-28805 .is-search-input:-ms-input-placeholder { color: #ffffff !important; } .is-form-style-1.is-form-id-28805 .is-search-input:focus, .is-form-style-1.is-form-id-28805 .is-search-input:hover, .is-form-style-1.is-form-id-28805 .is-search-input, .is-form-style-2.is-form-id-28805 .is-search-input:focus, .is-form-style-2.is-form-id-28805 .is-search-input:hover, .is-form-style-2.is-form-id-28805 .is-search-input, .is-form-style-3.is-form-id-28805 .is-search-input:focus, .is-form-style-3.is-form-id-28805 .is-search-input:hover, .is-form-style-3.is-form-id-28805 .is-search-input, .is-form-id-28805 .is-search-input:focus, .is-form-id-28805 .is-search-input:hover, .is-form-id-28805 .is-search-input { color: #ffffff !important; } </style><form class="is-search-form is-form-style is-form-style-2 is-form-id-28805 " action="https://web.archive.org/web/20210121061408/https://fidoalliance.org/" method="get" role="search"><label for="is-search-input-28805"><span class="is-screen-reader-text">Search for:</span><input type="search" id="is-search-input-28805" name="s" value="" class="is-search-input" placeholder="Type Your Query and Press Enter..." autocomplete="off"/></label><input type="hidden" name="id" value="28805"/></form> </div> </div> </div> </div> </div> <a href="#" class="search-opener bg-gray ml-3"><i class="icon-search"></i><i class="icon-close"></i></a> </div> <a href="#" class="nav-opener bg-gray ml-3"><span></span></a> </nav> <div class="row-form"> <div class="header-search d-flex align-items-center justify-content-center w-100 h-100"> <style type="text/css"> .is-form-id-28805 .is-search-input::-webkit-input-placeholder { color: #ffffff !important; } .is-form-id-28805 .is-search-input:-moz-placeholder { color: #ffffff !important; opacity: 1; } .is-form-id-28805 .is-search-input::-moz-placeholder { color: #ffffff !important; opacity: 1; } .is-form-id-28805 .is-search-input:-ms-input-placeholder { color: #ffffff !important; } .is-form-style-1.is-form-id-28805 .is-search-input:focus, .is-form-style-1.is-form-id-28805 .is-search-input:hover, .is-form-style-1.is-form-id-28805 .is-search-input, .is-form-style-2.is-form-id-28805 .is-search-input:focus, .is-form-style-2.is-form-id-28805 .is-search-input:hover, .is-form-style-2.is-form-id-28805 .is-search-input, .is-form-style-3.is-form-id-28805 .is-search-input:focus, .is-form-style-3.is-form-id-28805 .is-search-input:hover, .is-form-style-3.is-form-id-28805 .is-search-input, .is-form-id-28805 .is-search-input:focus, .is-form-id-28805 .is-search-input:hover, .is-form-id-28805 .is-search-input { color: #ffffff !important; } </style><form class="is-search-form is-form-style is-form-style-2 is-form-id-28805 " action="https://web.archive.org/web/20210121061408/https://fidoalliance.org/" method="get" role="search"><label for="is-search-input-28805"><span class="is-screen-reader-text">Search for:</span><input type="search" id="is-search-input-28805" name="s" value="" class="is-search-input" placeholder="Type Your Query and Press Enter..." autocomplete="off"/></label><input type="hidden" name="id" value="28805"/></form> </div> </div> </div> </div> </header> <main id="main" class="main d-flex flex-column flex-lg-row"> <aside id="sidebar" class="sidebar"> <ul class="top-menu m-0 p-0"> <li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-10295 current_page_item menu-item-15095"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/" aria-current="page" class="d-flex w-100 py-1 py-md-2 pl-4">Getting Started</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15096"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/resources/" class="d-flex w-100 py-1 py-md-2 pl-4">Developer Resources</a></li> </ul> <ul class="sub-menu m-0 my-2 my-md-4 p-0"> </ul> </aside> <div class="content w-100 px-3 mx-xl-8 py-4 py-xl-5"> <section class="content-wrap section-info-by"> <div class="row"> <nav aria-label="breadcrumb"> <ol class="breadcrumb"><li class="breadcrumb-item"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/">Home</a>&nbsp;</li><li class="breadcrumb-item active" aria-current="page">Getting Started for Developers</li></ul> </nav> </div> <div class="card-info pb-md-4"> <h1 class="mb-md-3">Getting Started for Developers</h1> </div> <p>For developers with existing webpages or applications that are looking to implement FIDO Authentication, there are two changes that you will have to make to your application: 1) modifying the login and registration pages of your website or mobile application to use the FIDO protocols; and 2) setup a FIDO server to authenticate any FIDO registration or authentication requests. The next two sections give a high-level overview of the steps to take for both of those changes.</p> <h3>Modifying Register and Login</h3> <p>Assuming your application already has the ability to register and login to accounts, adding FIDO Authentication is as simple as modifying your register and login screens.</p> <p>The first design decision to make is whether to use FIDO for first factor authentication (password-less) or second factor authentication. There are too many considerations that go into that decision to discuss here (ease of use, platform availability, application type, risk tolerance, etc.), but the good news is that regardless of whether using FIDO for first factor or second factor, the implementation looks roughly the same.</p> <h4>Registration</h4> <p>Integrating FIDO with your registration web page is as simple as calling the right registration API call. The registration calls for each FIDO specification are:</p> <ul><li>UAF: UAF_OPERATION (<a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/specs/fido-uaf-v1.2-rd-20171128/fido-uaf-client-api-transport-v1.2-rd-20171128.html#uaf_operation">iOS</a>, <a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/specs/fido-uaf-v1.2-rd-20171128/fido-uaf-client-api-transport-v1.2-rd-20171128.html#org.fidoalliance.intent.fido_operation-intent">Android</a>) &#8212; The UAF Client API specification defines an Android Intent and iOS x-callback scheme (respectively) with an operation type of UAF_OPERATION, where one of the first arguments to the UAF_OPERATION tells the authenticator to perform registration.</li><li>U2F: <a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-javascript-api-v1.2-ps-20170411.html#high-level-javascript-api">register()</a> &#8212; The U2F specification defines a JavaScript API for performing registration in a browser.</li><li>FIDO2 / WebAuthn: <a href="https://web.archive.org/web/20210121061408/https://www.w3.org/TR/webauthn/#credentialcreationoptions-extension">navigator.credentials.create()</a> &#8212; The WebAuthn specification (which is part of the FIDO2 project) defines a the navigator.credentials.create() API for creating a new credential (a.k.a. &#8211; registering) in a browser.</li></ul> <p>Each of these API calls requires that your application fetch a challenge (large random number) from a server and pass it to the corresponding API call. The server will make sure that the challenge sent to the authenticator matches the one that it receives back, so your application will probably need some kind of session management (e.g. &#8211; cookies) to track the challenge and the username / user&#8217;s account. After making the API call, the resulting JSON message from the API call is sent back to the server (typically via a REST endpoint that is defined by the server) and the server will validate the challenge, signature, origin and other key security characteristics of the registration message. Each FIDO specification has a description of the validations that a server must perform to validate messages:</p> <ul><li>UAF: the UAF Protocol specification defines how a server should process and validate <a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/specs/fido-uaf-v1.2-rd-20171128/fido-uaf-protocol-v1.2-rd-20171128.html#registration-response-processing-rules-for-fido-server">registration requests</a> and <a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/specs/fido-uaf-v1.2-rd-20171128/fido-uaf-protocol-v1.2-rd-20171128.html#authentication-response-processing-rules-for-fido-server">authentication (a.k.a. &#8211; login) requests</a></li><li>U2F: <a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-javascript-api-v1.2-ps-20170411.html#introduction">server validation is defined</a> in the U2F JavaScript API specification</li><li>FIDO2 / WebAuthn: the WebAuthn specification <a href="https://web.archive.org/web/20210121061408/https://www.w3.org/TR/webauthn/#registering-a-new-credential">lays out all the steps</a> that a relying party / server should perform when receiving a registration or login requests.</li></ul> <p>The server will respond with a success or failure depending on whether the registration succeeded or failed.</p> <p>It is worth mentioning that each user&#8217;s account may have multiple authenticators registered with it, so make sure that your UX flows allow users to add multiple authenticators, give them names to differentiate them, and remove authenticators (for example, if they get lost or stolen).</p> <h4>Log in</h4> <p>Logging in with FIDO is very similar to registration. Just like there is a registration call for each FIDO specification, there is a similar log in API:</p> <ul><li>UAF: UAF_OPERATION (<a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/specs/fido-uaf-v1.2-rd-20171128/fido-uaf-client-api-transport-v1.2-rd-20171128.html#uaf_operation">iOS</a>, <a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/specs/fido-uaf-v1.2-rd-20171128/fido-uaf-client-api-transport-v1.2-rd-20171128.html#org.fidoalliance.intent.fido_operation-intent">Android</a>) &#8212; The UAF Client API specification defines an Android Intent and iOS x-callback scheme (respectively) with an operation type of UAF_OPERATION, where one of the first arguments to the UAF_OPERATION tells the authenticator to perform login.</li><li>U2F: <a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-javascript-api-v1.2-ps-20170411.html#high-level-javascript-api">sign()</a> &#8212; The U2F specification defines a JavaScript API for signing an assertion (a.k.a. &#8211; logging in) in a browser.</li><li>WebAuthn: <a href="https://web.archive.org/web/20210121061408/https://www.w3.org/TR/webauthn/#credentialrequestoptions-extension">navigator.credentials.get()</a> &#8212; The WebAuthn specification defines a the navigator.credentials.get() API for using a credential (a.k.a. &#8211; logging in) via a browser.</li></ul> <p>Again, similar to the registration call the login API call will need a challenge from the server. Depending on the API, it may also need additional information &#8212; for example, WebAuthn may require a &#8220;credential ID&#8221; of previously registered accounts. The previous comments of needing some kind of session management also apply here, and the rest of the API flow is essentially the same as registration: pass the challenge to the API call, return the JSON to the server, and await the server&#8217;s success / failure response.</p> <h3>Adding a FIDO Server</h3> <p>There are far too many ways to integrate a FIDO server with existing authentication flows to cover them all comprehensively here. For example, a&nbsp; FIDO server may be integrated with your web or application server, may be provided as a module within an existing IAM framework, may be a stand-alone server, or for very broad and complex services it may be any combination of the above. Also, FIDO may be integrated with a application specific user data store (such as a MySQL or Mongo database), with LDAP / ActiveDirectory, provide SSO through an OpenID Connect (OIDC) identity provider (IDP), etc. The wide variety of back-end authentication architectures and use cases makes it difficult to talk about all the details of FIDO server integration, so what follows are generic tips and considerations for FIDO server deployment. Specific server vendors and their documentation should add additional information about how to integrate FIDO into any pre-existing IAM environment.</p> <p>Aside from setting up the hardware and software for your server, there are several steps that are common across most server deployments:</p> <ul><li>Servers will typically use REST endpoints to communicate with clients. This will require proper firewall configuration to communicate with clients. As mentioned previously, these endpoints may be part of existing applications (such as web servers or mobile application servers), or a micro-services architecture or ESB may be used to route messages to a stand-alone FIDO server.</li><li>Servers require https communication, so they will need a valid TLS certificate for https (or, will require a TLS terminator in front of them).</li><li>Servers may have policy configurations for determining when to allow registrations and authentications. For financial or government institutions, this may include use the FIDO Metadata Service (MDS) to validate the security of authenticators that are accessing services.</li><li>Servers will need to integrate with some form of user data store (LDAP, ActiveDirectory, MySQL, MongoDB, etc.). For new services, this is simply a matter of having some kind of storage associated with each user&#8217;s account. For existing applications, this will require modifying data schema &#8212; typically adding some form of one-to-many relationship between user accounts and the authenticators / credentials that they will register.</li></ul> <p>Additional forums for help with FIDO server architectures and configuration are available in our Developer Resources.</p> </section> </div> </main> <footer id="footer" class="footer py-4 py-lg-8"> <div class="row row-container align-items-end"> <div class="col-sm-6 col-lg-4"> <div class="brand-container p-0 m-0"><a class="navbar-brand" href="/web/20210121061408/https://fidoalliance.org/"><img src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/FIDO_Alliance_Logo-1.svg" width="194" height="40" alt="FIDO Alliance"></a></div> <p class="py-4 py-lg-5"></p> <ul class="social-list d-flex align-items-start mb-3 mb-sm-0 p-0"> <li><a class="d-flex align-items-center justify-content-center rounded-circle mr-2 mr-sm-3" href="https://web.archive.org/web/20210121061408/https://twitter.com/fidoalliance"><i class="fab fa-twitter"></i></a></li> <li><a class="d-flex align-items-center justify-content-center rounded-circle mr-2 mr-sm-3" href="https://web.archive.org/web/20210121061408/https://linkedin.com/company/the-fido-alliance"><i class="fab fa-linkedin"></i></a></li> <li><a class="d-flex align-items-center justify-content-center rounded-circle mr-2 mr-sm-3" href="https://web.archive.org/web/20210121061408/https://www.youtube.com/channel/UCbC3HuHhfyqlXR6sBuEHSug"><i class="fab fa-youtube"></i></a></li> <li><a class="d-flex align-items-center justify-content-center rounded-circle mr-2 mr-sm-3" href="https://web.archive.org/web/20210121061408/https://www.slideshare.net/FIDOAlliance/"><i class="fab fa-slideshare"></i></a></li> </ul> </div> <div class="col-sm-6 col-lg-4 d-flex align-items-start mb-4"> <ul class="m-0 p-0 pr-5"> <li id="menu-item-15945" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15945"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/what-is-fido/">What is FIDO?</a></li> <li id="menu-item-15946" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15946"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/how-fido-works/">How FIDO Works</a></li> <li id="menu-item-15947" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15947"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/fido2-project/">FIDO2 Project</a></li> <li id="menu-item-15948" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15948"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/overview/">Alliance Overview</a></li> <li id="menu-item-20799" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20799"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/terms-of-use/">Terms of Use</a></li> </ul> <ul class="m-0 p-0"> <li id="menu-item-15949" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15949"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/specifications/">Specifications Overview</a></li> <li id="menu-item-15952" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15952"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/certification/">Certification Overview</a></li> <li id="menu-item-15951" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15951"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/knowledge-base/">Knowledge Base</a></li> <li id="menu-item-15950" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15950"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/press-center/">Press Center</a></li> <li id="menu-item-20801" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20801"><a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/privacy-policy/">Privacy Policy</a></li> </ul> </div> <div class="col-sm-12 col-lg-4 d-flex flex-column justify-content-end"> <h3 class="mb-3 ml-lg-4">Join the Community</h3> <div class="card-btns ml-lg-4 d-flex flex-column align-items-end justify-content-around h-100"> <a class="btn mb-3" href="/web/20210121061408/https://fidoalliance.org/newsletter-sign-up/">Get the Latest Updates</a> <a class="btn mb-3" href="https://web.archive.org/web/20210121061408/https://groups.google.com/a/fidoalliance.org/forum/#!forum/fido-dev">Participate in FIDO-Dev Forum</a> </div> </div> </div> </footer> <a class="fixed-btn" href="/web/20210121061408/https://fidoalliance.org/specifications/download/">Download Specs</a> </div> <script type="text/javascript"> _linkedin_partner_id = "603338"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); </script><script type="text/javascript"> (function(){var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://web.archive.org/web/20210121061408/https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(); </script> <noscript> <img height="1" width="1" style="display:none;" alt="" src="https://web.archive.org/web/20210121061408im_/https://dc.ads.linkedin.com/collect/?pid=603338&amp;fmt=gif"/> </noscript><script type="text/javascript"> _linkedin_partner_id = "603338"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); </script><script type="text/javascript"> (function(){var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://web.archive.org/web/20210121061408/https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(); </script> <noscript> <img height="1" width="1" style="display:none;" alt="" src="https://web.archive.org/web/20210121061408im_/https://dc.ads.linkedin.com/collect/?pid=603338&amp;fmt=gif"/> </noscript><script type="text/javascript"> _linkedin_partner_id = "603338"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); </script><script type="text/javascript"> (function(){var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://web.archive.org/web/20210121061408/https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(); </script> <noscript> <img height="1" width="1" style="display:none;" alt="" src="https://web.archive.org/web/20210121061408im_/https://dc.ads.linkedin.com/collect/?pid=603338&amp;fmt=gif"/> </noscript><!-- Twitter universal website tag code --> <script> !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//web.archive.org/web/20210121061408/https://static.ads-twitter.com/uwt.js', a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); // Insert Twitter Pixel ID and Standard Event data below twq('init','o139u'); twq('track','PageView'); </script> <!-- End Twitter universal website tag code --><!-- Twitter universal website tag code --> <script> !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//web.archive.org/web/20210121061408/https://static.ads-twitter.com/uwt.js', a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); // Insert Twitter Pixel ID and Standard Event data below twq('init','o139u'); twq('track','PageView'); </script> <!-- End Twitter universal website tag code --><div class="hustle-ui hustle-popup hustle-palette--5eb429cf85dfc2_37245002 hustle_module_id_1 module_id_1 " data-id="1" data-render-id="0" data-tracking="disabled" data-intro="fadeIn" data-outro="fadeOut" data-overlay-close="1" data-close-delay="false" style="opacity: 0;"><div class="hustle-popup-mask hustle-optin-mask" aria-hidden="true"></div><div class="hustle-popup-content"><div class="hustle-optin hustle-optin--focus-optin"><button class="hustle-button-icon hustle-button-close"> <span class="hustle-icon-close" aria-hidden="true"></span> <span class="hustle-screen-reader">Close this module</span> </button><div class="hustle-layout"><div class="hustle-layout-body"><div class="hustle-layout-content"><div class="hustle-image hustle-image-fit--cover hustle-hide-until-sm" aria-hidden="true"><img src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/enterprise.jpg" alt="" class="hustle-image-position--centercenter"/></div><div class="hustle-content"><div class="hustle-content-wrap"><div class="hustle-group-title"><span class="hustle-title">Sign up for updates!</span><span class="hustle-subtitle">Get news from FIDO Alliance in your inbox.</span></div><div class="hustle-group-content"><p style="line-height: 14px!important"><em style="font-size: 11px;color: #ffffff;line-height: 14px!important">By submitting this form, you are consenting to receive communications from: FIDO Alliance, 3855 SW 153rd Drive, Beaverton, OR 97003, US, http://www.fidoalliance.org. You can revoke your consent to receive emails at any time by using the unsubscribe link found at the bottom of every email.</em></p></div></div></div></div><form class="hustle-layout-form" novalidate="novalidate"><div class="hustle-form"><div class="hustle-form-fields hustle-proximity-separated"><div class="hustle-field hustle-field-icon--static hustle-field-required "><label for="hustle-field-first_name-module-1" id="hustle-field-first_name-module-1-label" class="hustle-screen-reader">First Name</label><input id="hustle-field-first_name-module-1" type="name" class="hustle-input " name="first_name" value="" aria-labelledby="hustle-field-first_name-module-1-label" data-validate="" data-required-error="Your name is required."/><span class="hustle-input-label" aria-hidden="true"><span class="hustle-icon-name"></span><span>First Name</span></span></div><div class="hustle-field hustle-field-icon--static hustle-field-required "><label for="hustle-field-last_name-module-1" id="hustle-field-last_name-module-1-label" class="hustle-screen-reader">Last Name</label><input id="hustle-field-last_name-module-1" type="name" class="hustle-input " name="last_name" value="" aria-labelledby="hustle-field-last_name-module-1-label" data-validate="" data-required-error="Your name is required."/><span class="hustle-input-label" aria-hidden="true"><span class="hustle-icon-name"></span><span>Last Name</span></span></div><div class="hustle-field hustle-field-icon--static hustle-field-required "><label for="hustle-field-email-module-1" id="hustle-field-email-module-1-label" class="hustle-screen-reader">Your email</label><input id="hustle-field-email-module-1" type="email" class="hustle-input " name="email" value="" aria-labelledby="hustle-field-email-module-1-label" data-validate="1" data-required-error="Your email is required." data-validation-error="Please enter a valid email."/><span class="hustle-input-label" aria-hidden="true"><span class="hustle-icon-email"></span><span>Email</span></span></div><div class="hustle-field hustle-field-icon--static hustle-field-required "><label for="hustle-field-country-module-1" id="hustle-field-country-module-1-label" class="hustle-screen-reader">Country</label><input id="hustle-field-country-module-1" type="text" class="hustle-input " name="country" value="" aria-labelledby="hustle-field-country-module-1-label" data-validate="" data-required-error="This field can't be empty."/><span class="hustle-input-label" aria-hidden="true"><span class="hustle-icon-text"></span><span>Country</span></span></div><div class="hustle-field hustle-field-icon--static "><label for="hustle-field-company-module-1" id="hustle-field-company-module-1-label" class="hustle-screen-reader">Company</label><input id="hustle-field-company-module-1" type="text" class="hustle-input " name="company" value="" aria-labelledby="hustle-field-company-module-1-label" data-validate=""/><span class="hustle-input-label" aria-hidden="true"><span class="hustle-icon-text"></span><span>Company</span></span></div><div class="hustle-field hustle-field-icon--static "><label for="hustle-field-jobtitle-module-1" id="hustle-field-jobtitle-module-1-label" class="hustle-screen-reader">Job Title</label><input id="hustle-field-jobtitle-module-1" type="text" class="hustle-input " name="jobtitle" value="" aria-labelledby="hustle-field-jobtitle-module-1-label" data-validate=""/><span class="hustle-input-label" aria-hidden="true"><span class="hustle-icon-text"></span><span>Job Title</span></span></div><button class="hustle-button hustle-button-submit " aria-live="polite" data-loading-text="Form is being submitted, please wait a bit."><span class="hustle-button-text">SUBMIT</span><span class="hustle-icon-loader hustle-loading-icon" aria-hidden="true"></span></button></div></div><input type="hidden" name="hustle_module_id" value="1"><input type="hidden" name="post_id" value="10295"><div class="hustle-error-message" style="display: none;" data-default-error="Something went wrong, please try again."></div></form></div></div></div></div></div> <script> ( function ( body ) { 'use strict'; body.className = body.className.replace( /\btribe-no-js\b/, 'tribe-js' ); } )( document.body ); </script> <script> /* <![CDATA[ */var tribe_l10n_datatables = {"aria":{"sort_ascending":": activate to sort column ascending","sort_descending":": activate to sort column descending"},"length_menu":"Show _MENU_ entries","empty_table":"No data available in table","info":"Showing _START_ to _END_ of _TOTAL_ entries","info_empty":"Showing 0 to 0 of 0 entries","info_filtered":"(filtered from _MAX_ total entries)","zero_records":"No matching records found","search":"Search:","all_selected_text":"All items on this page were selected. ","select_all_link":"Select all pages","clear_selection":"Clear Selection.","pagination":{"all":"All","next":"Next","previous":"Previous"},"select":{"rows":{"0":"","_":": Selected %d rows","1":": Selected 1 row"}},"datepicker":{"dayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dayNamesShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dayNamesMin":["S","M","T","W","T","F","S"],"monthNames":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthNamesShort":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthNamesMin":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"nextText":"Next","prevText":"Prev","currentText":"Today","closeText":"Done","today":"Today","clear":"Clear"}};/* ]]> */ </script> <div class="wpml-ls-statics-footer wpml-ls wpml-ls-legacy-list-horizontal"> <ul><li class="wpml-ls-slot-footer wpml-ls-item wpml-ls-item-ja wpml-ls-first-item wpml-ls-item-legacy-list-horizontal"> <a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/?lang=ja" class="wpml-ls-link"><img class="wpml-ls-flag" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/plugins/sitepress-multilingual-cms/res/flags/ja.png" alt=""><span class="wpml-ls-native" lang="ja">日本語</span></a> </li><li class="wpml-ls-slot-footer wpml-ls-item wpml-ls-item-ko wpml-ls-item-legacy-list-horizontal"> <a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/?lang=ko" class="wpml-ls-link"><img class="wpml-ls-flag" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/plugins/sitepress-multilingual-cms/res/flags/ko.png" alt=""><span class="wpml-ls-native" lang="ko">한국어</span></a> </li><li class="wpml-ls-slot-footer wpml-ls-item wpml-ls-item-zh-hans wpml-ls-item-legacy-list-horizontal"> <a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/?lang=zh-hans" class="wpml-ls-link"><img class="wpml-ls-flag" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/flags/flag1.png" alt=""><span class="wpml-ls-native" lang="zh-hans">简体中文</span></a> </li><li class="wpml-ls-slot-footer wpml-ls-item wpml-ls-item-en wpml-ls-current-language wpml-ls-last-item wpml-ls-item-legacy-list-horizontal"> <a href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/developers/" class="wpml-ls-link"><img class="wpml-ls-flag" src="https://web.archive.org/web/20210121061408im_/https://media.fidoalliance.org/wp-content/uploads/flags/en.png" alt=""><span class="wpml-ls-native">English</span></a> </li></ul> </div> <link rel="stylesheet" id="hustle_icons-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/wordpress-popup/assets/hustle-ui/css/hustle-icons.min.css?ver=4.4.0" type="text/css" media="all"/> <link rel="stylesheet" id="hustle_global-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/wordpress-popup/assets/hustle-ui/css/hustle-global.min.css?ver=4.4.0" type="text/css" media="all"/> <link rel="stylesheet" id="hustle_optin-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/wordpress-popup/assets/hustle-ui/css/hustle-optin.min.css?ver=4.4.0" type="text/css" media="all"/> <link rel="stylesheet" id="hustle_popup-css" href="https://web.archive.org/web/20210121061408cs_/https://media.fidoalliance.org/wp-content/plugins/wordpress-popup/assets/hustle-ui/css/hustle-popup.min.css?ver=4.4.0" type="text/css" media="all"/> <link rel="stylesheet" id="hustle-fonts-css" href="https://web.archive.org/web/20210121061408cs_/https://fonts.googleapis.com/css?family=Open+Sans%3A700%2Cregular%2Cbold&amp;display=swap&amp;ver=1.0" type="text/css" media="all"/> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-includes/js/jquery/jquery.form.js?ver=4.2.1" id="jquery-form-js"></script> <script type="text/javascript" id="theme-my-login-js-extra"> /* <![CDATA[ */ var themeMyLogin = {"action":"","errors":[]}; /* ]]> */ </script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/plugins/theme-my-login/assets/scripts/theme-my-login.js?ver=7.1.2" id="theme-my-login-js"></script> <script type="text/javascript" id="cookie-consent-js-extra"> /* <![CDATA[ */ var ctcc_vars = {"expiry":"365","method":"","version":"1"}; /* ]]> */ </script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/plugins/uk-cookie-consent/assets/js/uk-cookie-consent-js.js?ver=2.3.0" id="cookie-consent-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/plugins/wordpress-popup/assets/hustle-ui/js/hustle-ui.min.js?ver=4.4.0" id="hui_scripts-js"></script> <script defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/plugins/the-events-calendar/common/src/resources/js/underscore-before.js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-includes/js/underscore.min.js?ver=1.8.3" id="underscore-js"></script> <script defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/plugins/the-events-calendar/common/src/resources/js/underscore-after.js"></script> <script type="text/javascript" id="hustle_front-js-extra"> /* <![CDATA[ */ var Modules = [{"settings":{"auto_close_success_message":"0","triggers":{"trigger":"time","on_time_delay":"3","on_time_unit":"seconds","on_scroll":"scrolled","on_scroll_page_percent":"20","on_scroll_css_selector":"","enable_on_click_element":"1","on_click_element":"","enable_on_click_shortcode":"1","on_exit_intent_per_session":"1","on_exit_intent_delayed":"0","on_exit_intent_delayed_time":"5","on_exit_intent_delayed_unit":"seconds","on_adblock":"0","enable_on_adblock_delay":"0","on_adblock_delay":"5","on_adblock_delay_unit":"seconds","on_exit_intent":"1"},"animation_in":"fadeIn","animation_out":"fadeOut","after_close_trigger":["click_close_icon","click_outside"],"after_close":"no_show_all","expiration":"365","expiration_unit":"days","on_submit":"nothing","on_submit_delay":"5","on_submit_delay_unit":"seconds","close_cta":"0","close_cta_time":"0","close_cta_unit":"seconds","hide_after_cta":"keep_show","hide_after_subscription":"keep_show","is_schedule":"0","schedule":{"not_schedule_start":"1","start_date":"06\/05\/2020","start_hour":"12","start_minute":"00","start_meridiem_offset":"am","not_schedule_end":"1","end_date":"06\/11\/2020","end_hour":"11","end_minute":"59","end_meridiem_offset":"pm","active_days":"all","week_days":[],"is_active_all_day":"1","day_start_hour":"00","day_start_minute":"00","day_start_meridiem_offset":"am","day_end_hour":"11","day_end_minute":"59","day_end_meridiem_offset":"pm","time_to_use":"server","custom_timezone":"UTC"},"allow_scroll_page":"0","close_on_background_click":"1","auto_hide":"0","auto_hide_unit":"seconds","auto_hide_time":"5"},"module_id":"1","blog_id":"0","module_name":"Email PopUp","module_type":"popup","active":"1","module_mode":"optin"}]; var incOpt = {"is_admin":"","native_share_enpoints":{"facebook":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Ffidoalliance.org%2Fdevelopers","twitter":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Ffidoalliance.org%2Fdevelopers&text=Getting%20Started%20for%20Developers","pinterest":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/www.pinterest.com\/pin\/create\/button\/?url=https%3A%2F%2Ffidoalliance.org%2Fdevelopers","reddit":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Ffidoalliance.org%2Fdevelopers","linkedin":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/www.linkedin.com\/shareArticle?mini=true&url=https%3A%2F%2Ffidoalliance.org%2Fdevelopers","vkontakte":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/vk.com\/share.php?url=https%3A%2F%2Ffidoalliance.org%2Fdevelopers","whatsapp":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/api.whatsapp.com\/send?text=https%3A%2F%2Ffidoalliance.org%2Fdevelopers","email":"mailto:?subject=Getting%20Started%20for%20Developers&body=https%3A%2F%2Ffidoalliance.org%2Fdevelopers"},"ajaxurl":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/fidoalliance.org\/wp-admin\/admin-ajax.php","page_id":"10295","page_slug":"developers","is_upfront":"","script_delay":"3000"}; /* ]]> */ </script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/plugins/wordpress-popup/assets/js/front.debug.js?ver=4.4.0" id="hustle_front-js"></script> <script type="text/javascript" crossorigin="anonymous" defer="defer" defer="defer" src="//web.archive.org/web/20210121061408js_/https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js?ver=1.0.0" id="bootstrap-js"></script> <script type="text/javascript" crossorigin="anonymous" defer="defer" defer="defer" src="//web.archive.org/web/20210121061408js_/https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js?ver=1.0.0" id="popper-js"></script> <script type="text/javascript" crossorigin="anonymous" defer="defer" defer="defer" src="//web.archive.org/web/20210121061408js_/https://cdnjs.cloudflare.com/ajax/libs/jquery.touchswipe/1.6.4/jquery.touchSwipe.min.js?ver=1.0.0" id="touchswipe-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/js/jquery.magnific-popup.min.js?ver=1.1.0" id="magnefic-popup-js-js"></script> <script type="text/javascript" defer="defer" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/js/min/app.min.js?ver=1.0.0" id="app-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/themes/fidoalliance/js/main-extra.js?ver=1.0.0" id="main-extra-js"></script> <script type="text/javascript" id="heateor_sss_sharing_js-js-before"> function heateorSssLoadEvent(e) {var t=window.onload;if (typeof window.onload!="function") {window.onload=e}else{window.onload=function() {t();e()}}}; var heateorSssSharingAjaxUrl = 'https://web.archive.org/web/20210121061408/https://fidoalliance.org/wp-admin/admin-ajax.php', heateorSssCloseIconPath = 'https://web.archive.org/web/20210121061408/https://media.fidoalliance.org/wp-content/plugins/sassy-social-share/public/../images/close.png', heateorSssPluginIconPath = 'https://web.archive.org/web/20210121061408/https://media.fidoalliance.org/wp-content/plugins/sassy-social-share/public/../images/logo.png', heateorSssHorizontalSharingCountEnable = 0, heateorSssVerticalSharingCountEnable = 0, heateorSssSharingOffset = -10; var heateorSssMobileStickySharingEnabled = 0;var heateorSssCopyLinkMessage = "Link copied.";var heateorSssUrlCountFetched = [], heateorSssSharesText = 'Shares', heateorSssShareText = 'Share';function heateorSssPopup(e) {window.open(e,"popUpWindow","height=400,width=600,left=400,top=100,resizable,scrollbars,toolbar=0,personalbar=0,menubar=no,location=no,directories=no,status")};var heateorSssWhatsappShareAPI = "web"; </script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/plugins/sassy-social-share/public/js/sassy-social-share-public.js?ver=3.3.16" id="heateor_sss_sharing_js-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-includes/js/jquery/ui/draggable.js?ver=1.12.1" id="jquery-ui-draggable-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-includes/js/jquery/ui/slider.js?ver=1.12.1" id="jquery-ui-slider-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-includes/js/jquery/jquery.ui.touch-punch.js?ver=0.2.2" id="jquery-touch-punch-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://fidoalliance.org/wp-admin/js/iris.min.js?ver=1.0.7" id="iris-js"></script> <script type="text/javascript" id="wp-color-picker-js-extra"> /* <![CDATA[ */ var wpColorPickerL10n = {"clear":"Clear","defaultString":"Default","pick":"Select Color","current":"Current Color"}; /* ]]> */ </script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://fidoalliance.org/wp-admin/js/color-picker.min.js?ver=5.6" id="wp-color-picker-js"></script> <script type="text/javascript" id="ivory-search-scripts-js-extra"> /* <![CDATA[ */ var IvorySearchVars = {"is_analytics_enabled":"1"}; /* ]]> */ </script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-content/plugins/add-search-to-menu/public/js/ivory-search.min.js?ver=4.5.10" id="ivory-search-scripts-js"></script> <script type="text/javascript" defer="defer" src="https://web.archive.org/web/20210121061408js_/https://media.fidoalliance.org/wp-includes/js/wp-embed.js?ver=5.6" id="wp-embed-js"></script> <script type="text/javascript"> acf.data = {"screen":null,"post_id":null,"nonce":"b48b17a927","admin_url":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/fidoalliance.org\/wp-admin\/","ajaxurl":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/fidoalliance.org\/wp-admin\/admin-ajax.php","validation":null,"wp_version":"5.6","acf_version":"5.8.2","browser":"","locale":"en_US","rtl":false,"editor":"classic","language":"en","mimeTypeIcon":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/fidoalliance.org\/wp-includes\/images\/media\/default.png","mimeTypes":{"jpg|jpeg|jpe":"image\/jpeg","gif":"image\/gif","png":"image\/png","bmp":"image\/bmp","tiff|tif":"image\/tiff","ico":"image\/x-icon","heic":"image\/heic","asf|asx":"video\/x-ms-asf","wmv":"video\/x-ms-wmv","wmx":"video\/x-ms-wmx","wm":"video\/x-ms-wm","avi":"video\/avi","divx":"video\/divx","flv":"video\/x-flv","mov|qt":"video\/quicktime","mpeg|mpg|mpe":"video\/mpeg","mp4|m4v":"video\/mp4","ogv":"video\/ogg","webm":"video\/webm","mkv":"video\/x-matroska","3gp|3gpp":"video\/3gpp","3g2|3gp2":"video\/3gpp2","txt|asc|c|cc|h|srt":"text\/plain","csv":"text\/csv","tsv":"text\/tab-separated-values","ics":"text\/calendar","rtx":"text\/richtext","css":"text\/css","vtt":"text\/vtt","dfxp":"application\/ttaf+xml","mp3|m4a|m4b":"audio\/mpeg","aac":"audio\/aac","ra|ram":"audio\/x-realaudio","wav":"audio\/wav","ogg|oga":"audio\/ogg","flac":"audio\/flac","mid|midi":"audio\/midi","wma":"audio\/x-ms-wma","wax":"audio\/x-ms-wax","mka":"audio\/x-matroska","rtf":"application\/rtf","pdf":"application\/pdf","class":"application\/java","tar":"application\/x-tar","zip":"application\/zip","gz|gzip":"application\/x-gzip","rar":"application\/rar","7z":"application\/x-7z-compressed","psd":"application\/octet-stream","xcf":"application\/octet-stream","doc":"application\/msword","pot|pps|ppt":"application\/vnd.ms-powerpoint","wri":"application\/vnd.ms-write","xla|xls|xlt|xlw":"application\/vnd.ms-excel","mdb":"application\/vnd.ms-access","mpp":"application\/vnd.ms-project","docx":"application\/vnd.openxmlformats-officedocument.wordprocessingml.document","docm":"application\/vnd.ms-word.document.macroEnabled.12","dotx":"application\/vnd.openxmlformats-officedocument.wordprocessingml.template","dotm":"application\/vnd.ms-word.template.macroEnabled.12","xlsx":"application\/vnd.openxmlformats-officedocument.spreadsheetml.sheet","xlsm":"application\/vnd.ms-excel.sheet.macroEnabled.12","xlsb":"application\/vnd.ms-excel.sheet.binary.macroEnabled.12","xltx":"application\/vnd.openxmlformats-officedocument.spreadsheetml.template","xltm":"application\/vnd.ms-excel.template.macroEnabled.12","xlam":"application\/vnd.ms-excel.addin.macroEnabled.12","pptx":"application\/vnd.openxmlformats-officedocument.presentationml.presentation","pptm":"application\/vnd.ms-powerpoint.presentation.macroEnabled.12","ppsx":"application\/vnd.openxmlformats-officedocument.presentationml.slideshow","ppsm":"application\/vnd.ms-powerpoint.slideshow.macroEnabled.12","potx":"application\/vnd.openxmlformats-officedocument.presentationml.template","potm":"application\/vnd.ms-powerpoint.template.macroEnabled.12","ppam":"application\/vnd.ms-powerpoint.addin.macroEnabled.12","sldx":"application\/vnd.openxmlformats-officedocument.presentationml.slide","sldm":"application\/vnd.ms-powerpoint.slide.macroEnabled.12","onetoc|onetoc2|onetmp|onepkg":"application\/onenote","oxps":"application\/oxps","xps":"application\/vnd.ms-xpsdocument","odt":"application\/vnd.oasis.opendocument.text","odp":"application\/vnd.oasis.opendocument.presentation","ods":"application\/vnd.oasis.opendocument.spreadsheet","odg":"application\/vnd.oasis.opendocument.graphics","odc":"application\/vnd.oasis.opendocument.chart","odb":"application\/vnd.oasis.opendocument.database","odf":"application\/vnd.oasis.opendocument.formula","wp|wpd":"application\/wordperfect","key":"application\/vnd.apple.keynote","numbers":"application\/vnd.apple.numbers","pages":"application\/vnd.apple.pages","svg":"image\/svg+xml"},"select2L10n":{"matches_1":"One result is available, press enter to select it.","matches_n":"%d results are available, use up and down arrow keys to navigate.","matches_0":"No matches found","input_too_short_1":"Please enter 1 or more characters","input_too_short_n":"Please enter %d or more characters","input_too_long_1":"Please delete 1 character","input_too_long_n":"Please delete %d characters","selection_too_long_1":"You can only select 1 item","selection_too_long_n":"You can only select %d items","load_more":"Loading more results&hellip;","searching":"Searching&hellip;","load_fail":"Loading failed"},"google_map_api":"https:\/\/web.archive.org\/web\/20210121061408\/https:\/\/maps.googleapis.com\/maps\/api\/js?libraries=places&ver=3&callback&language=en_US","datePickerL10n":{"closeText":"Done","currentText":"Today","nextText":"Next","prevText":"Prev","weekHeader":"Wk","monthNames":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthNamesShort":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"dayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dayNamesMin":["S","M","T","W","T","F","S"],"dayNamesShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},"dateTimePickerL10n":{"timeOnlyTitle":"Choose Time","timeText":"Time","hourText":"Hour","minuteText":"Minute","secondText":"Second","millisecText":"Millisecond","microsecText":"Microsecond","timezoneText":"Time Zone","currentText":"Now","closeText":"Done","selectText":"Select","amNames":["AM","A"],"pmNames":["PM","P"]}}; acf.l10n = []; </script> <script type="text/javascript"> acf.doAction('prepare'); </script> <script> window.jQuery || document.write('<script src="https://web.archive.org/web/20210121061408/https://media.fidoalliance.org/wp-content/themes/fidoalliance/js/jquery-3.3.1.min.js" defer="defer"><\/script>') jQuery(function($) { $(window).load(function () { $('#gsc-i-id2').attr('placeholder', 'Type search term here and press return...'); $('#gsc-i-id1').attr('placeholder', 'Type search term...'); }) }); </script> <script type="text/javascript"> jQuery(document).ready(function($){ if(!catapultReadCookie("catAccCookies")){ // If the cookie has not been set then show the bar $("html").addClass("has-cookie-bar"); $("html").addClass("cookie-bar-top-bar"); $("html").addClass("cookie-bar-bar"); // Wait for the animation on the html to end before recalculating the required top margin $("html").on('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) { // code to execute after transition ends var barHeight = $('#catapult-cookie-bar').outerHeight(); $("html").css("margin-top",barHeight); $("body.admin-bar").css("margin-top",barHeight-32); // Push the body down if the admin bar is active }); } }); </script> <div id="catapult-cookie-bar" class=""><div class="ctcc-inner "><span class="ctcc-left-side">This site uses cookies. By continuing to browse the site, you are consenting to their use. More information is available in the <a class="ctcc-more-info-link" tabindex="0" target="_blank" href="https://web.archive.org/web/20210121061408/https://fidoalliance.org/privacy-policy/">FIDO Alliance Privacy Policy.</a></span><span class="ctcc-right-side"><button id="catapultCookie" tabindex="0" onclick="catapultAcceptCookies();">OK</button></span></div><!-- custom wrapper class --></div><!-- #catapult-cookie-bar --><style type="text/css" id="hustle-module-1-0-styles" class="hustle-module-styles hustle-module-styles-1">.hustle-ui.module_id_1 .hustle-popup-content {max-width: 800px;} .hustle-ui.module_id_1 {padding-right: 10px;padding-left: 10px;}.hustle-ui.module_id_1 .hustle-popup-content .hustle-info,.hustle-ui.module_id_1 .hustle-popup-content .hustle-optin {padding-top: 10px;padding-bottom: 10px;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 {padding-right: 10px;padding-left: 10px;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-popup-content .hustle-info,.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-popup-content .hustle-optin {padding-top: 10px;padding-bottom: 10px;}} .hustle-ui.module_id_1 .hustle-layout .hustle-layout-body {padding: 0px 0px 0px 0px;border-width: 0px 0px 0px 0px;border-style: solid;border-color: #DADADA;border-radius: 0px 0px 0px 0px;background-color: #004b4e;-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0.4);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0.4);box-shadow: 0px 0px 0px 0px rgba(0,0,0,0.4);}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-layout-body {padding: 0px 0px 0px 0px;border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0.4);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0.4);box-shadow: 0px 0px 0px 0px rgba(0,0,0,0.4);}} .hustle-ui.module_id_1 .hustle-layout .hustle-layout-content {padding: 0px 0px 0px 0px;border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;border-color: rgba(0,0,0,0);background-color: rgba(0,0,0,0);}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-layout-content {padding: 0px 0px 0px 0px;border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;}}.hustle-ui.module_id_1 .hustle-layout .hustle-image {background-color: ;}.hustle-ui.module_id_1 .hustle-layout .hustle-image {height: 150px;overflow: hidden;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-image {height: 150px;overflow: hidden;}}.hustle-ui.module_id_1 .hustle-layout .hustle-image img {width: 100%;max-width: unset;height: 100%;display: block;position: absolute;object-fit: cover;-ms-interpolation-mode: bicubic;}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {.hustle-ui.module_id_1 .hustle-layout .hustle-image img {width: auto;max-width: unset;height: auto;max-height: unset;}}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-image img {width: 100%;max-width: unset;height: 100%;display: block;position: absolute;object-fit: cover;-ms-interpolation-mode: bicubic;}}@media all and (min-width: 783px) and (-ms-high-contrast: none), (-ms-high-contrast: active) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-image img {width: auto;max-width: unset;height: auto;max-height: unset;}}.hustle-ui.module_id_1 .hustle-layout .hustle-image img {object-position: center center;-o-object-position: center center;}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {.hustle-ui.module_id_1 .hustle-layout .hustle-image img {left: 50%;}}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {.hustle-ui.module_id_1 .hustle-layout .hustle-image img {transform: translate(-50%,-50%);-ms-transform: translate(-50%,-50%);-webkit-transform: translate(-50%,-50%);}}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {.hustle-ui.module_id_1 .hustle-layout .hustle-image img {top: 50%;}}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {.hustle-ui.module_id_1 .hustle-layout .hustle-image img {transform: translate(-50%,-50%);-ms-transform: translate(-50%,-50%);-webkit-transform: translate(-50%,-50%);}}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-image img {object-position: center center;-o-object-position: center center;}}@media all and (min-width: 783px) and (-ms-high-contrast: none), (-ms-high-contrast: active) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-image img {left: 50%;right: auto;}}@media all and (min-width: 783px) and (-ms-high-contrast: none), (-ms-high-contrast: active) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-image img {transform: translate(-50%,-50%);-ms-transform: translate(-50%,-50%);-webkit-transform: translate(-50%,-50%);}}@media all and (min-width: 783px) and (-ms-high-contrast: none), (-ms-high-contrast: active) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-image img {top: 50%;bottom: auto;}}@media all and (min-width: 783px) and (-ms-high-contrast: none), (-ms-high-contrast: active) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-image img {transform: translate(-50%,-50%);-ms-transform: translate(-50%,-50%);-webkit-transform: translate(-50%,-50%);}} .hustle-ui.module_id_1 .hustle-layout .hustle-content {margin: 0px 0px 0px 0px;padding: 0 10px 0 10px;border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;border-color: rgba(0,0,0,0);background-color: rgba(0,0,0,0);}.hustle-ui.module_id_1 .hustle-layout .hustle-content .hustle-content-wrap {padding: 10px 0 10px 0;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-content {margin: 0px 0px 0px 0px;padding: 0 20px 0 20px;border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-content .hustle-content-wrap {padding: 20px 0 20px 0;}} .hustle-ui.module_id_1 .hustle-layout .hustle-title {display: block;margin: 0px 0px 0px 0px;padding: 0px 0px 0px 0px;border-width: 0px 0px 0px 0px;border-style: solid;border-color: rgba(0,0,0,0);border-radius: 0px 0px 0px 0px;background-color: rgba(0,0,0,0);box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);color: #FFFFFF;font: 700 20px/27px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;text-align: left;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-title {margin: 0px 0px 0px 0px;padding: 0px 0px 0px 0px;border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);font: 700 20px/27px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;text-align: left;}} .hustle-ui.module_id_1 .hustle-layout .hustle-subtitle {display: block;margin: 10px 0px 0px 0px;padding: 0px 0px 0px 0px;border-width: 0px 0px 0px 0px;border-style: solid;border-color: rgba(0,0,0,0);border-radius: 0px 0px 0px 0px;background-color: rgba(0,0,0,0);box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);color: #FFFFFF;font: 700 14px/18px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;text-align: left;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-subtitle {margin: 10px 0px 0px 0px;padding: 0px 0px 0px 0px;border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);font: 700 14px/18px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;text-align: left;}} .hustle-ui.module_id_1 .hustle-layout .hustle-group-content {margin: 10px 0px 0px 0px;padding: 0px 0px 0px 0px;border-color: rgba(0,0,0,0);border-width: 0px 0px 0px 0px;border-style: solid;color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content b,.hustle-ui.module_id_1 .hustle-layout .hustle-group-content strong {font-weight: bold;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content a,.hustle-ui.module_id_1 .hustle-layout .hustle-group-content a:visited {color: #00cecd;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content a:hover {color: #4D95B6;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content a:focus,.hustle-ui.module_id_1 .hustle-layout .hustle-group-content a:active {color: #4D95B6;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content {margin: 20px 0px 0px 0px;padding: 0px 0px 0px 0px;border-width: 0px 0px 0px 0px;border-style: solid;}}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content {color: #FFFFFF;font-size: 14px;line-height: 1.45em;font-family: Open Sans;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content {font-size: 14px;line-height: 1.45em;}}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content p:not([class*="forminator-"]) {margin: 0 0 10px;color: #FFFFFF;font: normal 14px/1.45em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content p:not([class*="forminator-"]):last-child {margin-bottom: 0;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content p:not([class*="forminator-"]) {margin: 0 0 10px;font: normal 14px/1.45em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content p:not([class*="forminator-"]):last-child {margin-bottom: 0;}}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content h1:not([class*="forminator-"]) {margin: 0 0 10px;color: #FFFFFF;font: 700 28px/1.4em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content h1:not([class*="forminator-"]):last-child {margin-bottom: 0;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content h1:not([class*="forminator-"]) {margin: 0 0 10px;font: 700 28px/1.4em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content h1:not([class*="forminator-"]):last-child {margin-bottom: 0;}}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content h2:not([class*="forminator-"]) {margin: 0 0 10px;color: #FFFFFF;font-size: 22px;line-height: 1.4em;font-weight: 700;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content h2:not([class*="forminator-"]):last-child {margin-bottom: 0;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content h2:not([class*="forminator-"]) {margin: 0 0 10px;font-size: 22px;line-height: 1.4em;font-weight: 700;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content h2:not([class*="forminator-"]):last-child {margin-bottom: 0;}}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content h3:not([class*="forminator-"]) {margin: 0 0 10px;color: #FFFFFF;font: 700 18px/1.4em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content h3:not([class*="forminator-"]):last-child {margin-bottom: 0;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content h3:not([class*="forminator-"]) {margin: 0 0 10px;font: 700 18px/1.4em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content h3:not([class*="forminator-"]):last-child {margin-bottom: 0;}}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content h4:not([class*="forminator-"]) {margin: 0 0 10px;color: #FFFFFF;font: 700 16px/1.4em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content h4:not([class*="forminator-"]):last-child {margin-bottom: 0;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content h4:not([class*="forminator-"]) {margin: 0 0 10px;font: 700 16px/1.4em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content h4:not([class*="forminator-"]):last-child {margin-bottom: 0;}}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content h5:not([class*="forminator-"]) {margin: 0 0 10px;color: #FFFFFF;font: 700 14px/1.4em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content h5:not([class*="forminator-"]):last-child {margin-bottom: 0;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content h5:not([class*="forminator-"]) {margin: 0 0 10px;font: 700 14px/1.4em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content h5:not([class*="forminator-"]):last-child {margin-bottom: 0;}}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content h6:not([class*="forminator-"]) {margin: 0 0 10px;color: #FFFFFF;font: 700 12px/1.4em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: uppercase;text-decoration: none;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content h6:not([class*="forminator-"]):last-child {margin-bottom: 0;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content h6:not([class*="forminator-"]) {margin: 0 0 10px;font: 700 12px/1.4em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: uppercase;text-decoration: none;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content h6:not([class*="forminator-"]):last-child {margin-bottom: 0;}}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content ol:not([class*="forminator-"]),.hustle-ui.module_id_1 .hustle-layout .hustle-group-content ul:not([class*="forminator-"]) {margin: 0 0 10px;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content ol:not([class*="forminator-"]):last-child,.hustle-ui.module_id_1 .hustle-layout .hustle-group-content ul:not([class*="forminator-"]):last-child {margin-bottom: 0;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content li:not([class*="forminator-"]) {margin: 0 0 5px;color: #FFFFFF;font: normal 14px/1.45em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content li:not([class*="forminator-"]):last-child {margin-bottom: 0;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content ol:not([class*="forminator-"]) li:before {color: #FFFFFF}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content ul:not([class*="forminator-"]) li:before {color: #FFFFFF}@media screen and (min-width: 783px) {.hustle-ui.module_id_1 .hustle-layout .hustle-group-content ol:not([class*="forminator-"]),.hustle-ui.module_id_1 .hustle-layout .hustle-group-content ul:not([class*="forminator-"]) {margin: 0 0 20px;}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content ol:not([class*="forminator-"]):last-child,.hustle-ui.module_id_1 .hustle-layout .hustle-group-content ul:not([class*="forminator-"]):last-child {margin: 0;}}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content li:not([class*="forminator-"]) {margin: 0 0 5px;font: normal 14px/1.45em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-group-content li:not([class*="forminator-"]):last-child {margin-bottom: 0;}}.hustle-ui.module_id_1 .hustle-layout .hustle-group-content blockquote {margin-right: 0;margin-left: 0;}.hustle-ui.module_id_1 button.hustle-button-close {color: #78B5D1;}.hustle-ui.module_id_1 button.hustle-button-close:hover {color: #165E80;}.hustle-ui.module_id_1 button.hustle-button-close:focus,.hustle-ui.module_id_1 button.hustle-button-close:active {color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-popup-mask {background-color: rgba(51,51,51,0.9);} .hustle-ui.module_id_1 .hustle-layout .hustle-layout-form {margin: 0px 0px 0px 0px;padding: 10px 10px 10px 10px;border-width: 0px 0px 0px 0px;border-style: solid;border-color: rgba(0,0,0,0);border-radius: 0px 0px 0px 0px;background-color: #004b4e;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-layout-form {margin: 0px 0px 0px 0px;padding: 20px 20px 20px 20px;border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;}}.hustle-ui.module_id_1 .hustle-form .hustle-form-fields {display: block;}.hustle-ui.module_id_1 .hustle-form .hustle-form-fields .hustle-field {margin-bottom: 10px;}.hustle-ui.module_id_1 .hustle-form .hustle-form-fields .hustle-button {width: 100%;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-form .hustle-form-fields .hustle-field {margin-bottom: 10px;}} .hustle-ui.module_id_1 .hustle-field .hustle-input {margin: 0;padding: 9px 10px 9px 10px;padding-left: calc(10px + 25px);border-width: 0px 0px 0px 0px;border-style: solid;border-color: #75A9C2;border-radius: 0px 0px 0px 0px;background-color: #FFFFFF;box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);color: #4D95B6;font: normal 13px/18px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-align: left;}.hustle-ui.module_id_1 .hustle-field .hustle-input:hover {border-color: #4C87A3;background-color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-field .hustle-input:focus {border-color: #4C87A3;background-color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-field-error.hustle-field .hustle-input {border-color: #D43858 !important;background-color: #FFFFFF !important;}.hustle-ui.module_id_1 .hustle-field .hustle-input + .hustle-input-label {padding: 9px 10px 9px 10px;border-width: 0px 0px 0px 0px;border-style: solid;border-color: transparent;color: #AAAAAA;font: normal 13px/18px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-align: left;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-field .hustle-input {padding: 9px 10px 9px 10px;padding-left: calc(10px + 25px);border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);font: normal 13px/18px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-align: left;}}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-field .hustle-input + .hustle-input-label {padding: 9px 10px 9px 10px;border-width: 0px 0px 0px 0px;font: normal 13px/18px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-align: left;}} .hustle-ui.module_id_1 .hustle-select2 + .select2 {box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);}.hustle-ui.module_id_1 .hustle-select2 + .select2 .select2-selection--single {margin: 0;padding: 0 10px 0 10px;border-width: 0px 0px 0px 0px;border-style: solid;border-color: #75A9C2;border-radius: 0px 0px 0px 0px;background-color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-select2 + .select2 .select2-selection--single .select2-selection__rendered {padding: 9px 0 9px 0;color: #4D95B6;font: normal 13px/18px Open Sans;font-style: normal;}.hustle-ui.module_id_1 .hustle-select2 + .select2 .select2-selection--single .select2-selection__rendered .select2-selection__placeholder {color: #AAAAAA;}.hustle-ui.module_id_1 .hustle-select2 + .select2:hover .select2-selection--single {border-color: #4C87A3;background-color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-select2 + .select2.select2-container--open .select2-selection--single {border-color: #4C87A3;background-color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-select2.hustle-field-error + .select2 .select2-selection--single {border-color: #FFFFFF !important;background-color: #FFFFFF !important;}.hustle-ui.module_id_1 .hustle-select2 + .select2 + .hustle-input-label {color: #AAAAAA;font: normal 13px/18px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-align: left;}.hustle-ui.module_id_1 .hustle-select2 + .select2 .select2-selection--single .select2-selection__arrow {color: #4D95B6;}.hustle-ui.module_id_1 .hustle-select2 + .select2:hover .select2-selection--single .select2-selection__arrow {color: #165E80;}.hustle-ui.module_id_1 .hustle-select2 + .select2.select2-container--open .select2-selection--single .select2-selection__arrow {color: #165E80;}.hustle-ui.module_id_1 .hustle-select2.hustle-field-error + .select2 .select2-selection--single .select2-selection__arrow {color: #D43858 !important;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-select2 + .select2 {box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-select2 + .select2 .select2-selection--single {padding: 0 10px 0 10px;border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-select2 + .select2 .select2-selection--single .select2-selection__rendered {padding: 9px 0 9px 0;font: normal 13px/18px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-align: left;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-select2 + .select2 + .hustle-input-label {font: normal 13px/18px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-align: left;}}.hustle-module-1.hustle-dropdown {background-color: #FFFFFF;}.hustle-module-1.hustle-dropdown .select2-results .select2-results__options .select2-results__option {color: #78B5D1;background-color: transparent;}.hustle-module-1.hustle-dropdown .select2-results .select2-results__options .select2-results__option.select2-results__option--highlighted {color: #FFFFFF;background-color: #AAAAAA;}.hustle-module-1.hustle-dropdown .select2-results .select2-results__options .select2-results__option[aria-selected="true"] {color: #FFFFFF;background-color: #4D95B6;}.hustle-ui.module_id_1 .hustle-timepicker .ui-timepicker {background-color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-timepicker .ui-timepicker .ui-timepicker-viewport a {color: #78B5D1;background-color: transparent;}.hustle-ui.module_id_1 .hustle-timepicker .ui-timepicker .ui-timepicker-viewport a:hover,.hustle-ui.module_id_1 .hustle-timepicker .ui-timepicker .ui-timepicker-viewport a:focus {color: #FFFFFF;background-color: #AAAAAA;} .hustle-ui.module_id_1 .hustle-form .hustle-radio span[aria-hidden] {border-width: 0px 0px 0px 0px;border-style: solid;border-color: #75A9C2;background-color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-form .hustle-radio span:not([aria-hidden]) {color: #FFFFFF;font: normal 12px/20px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;text-align: left;}.hustle-ui.module_id_1 .hustle-form .hustle-radio input:checked + span[aria-hidden] {border-color: #4C87A3;background-color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-form .hustle-radio input:checked + span[aria-hidden]:before {background-color: #78B5D1;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-form .hustle-radio span[aria-hidden] {border-width: 0px 0px 0px 0px;border-style: solid;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-form .hustle-radio span:not([aria-hidden]) {font: normal 12px/20px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;text-align: left;}} .hustle-ui.module_id_1 .hustle-form .hustle-checkbox:not(.hustle-gdpr) span[aria-hidden] {border-width: 0px 0px 0px 0px;border-style: solid;border-color: #75A9C2;border-radius: 0px 0px 0px 0px;background-color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-form .hustle-checkbox:not(.hustle-gdpr) span:not([aria-hidden]) {color: #FFFFFF;font: normal 12px/20px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;text-align: left;}.hustle-ui.module_id_1 .hustle-form .hustle-checkbox:not(.hustle-gdpr) input:checked + span[aria-hidden] {border-color: #4C87A3;background-color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-form .hustle-checkbox:not(.hustle-gdpr) input:checked + span[aria-hidden]:before {color: #78B5D1;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-form .hustle-checkbox:not(.hustle-gdpr) span[aria-hidden] {border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-form .hustle-checkbox:not(.hustle-gdpr) span:not([aria-hidden]) {font: normal 12px/20px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;text-align: left;}}.hustle-module-1.hustle-calendar:before {background-color: #FFFFFF;}.hustle-module-1.hustle-calendar .ui-datepicker-header .ui-datepicker-title {color: #165E80;}.hustle-module-1.hustle-calendar .ui-datepicker-header .ui-corner-all,.hustle-module-1.hustle-calendar .ui-datepicker-header .ui-corner-all:visited {color: #165E80;}.hustle-module-1.hustle-calendar .ui-datepicker-header .ui-corner-all:hover {color: #165E80;}.hustle-module-1.hustle-calendar .ui-datepicker-header .ui-corner-all:focus,.hustle-module-1.hustle-calendar .ui-datepicker-header .ui-corner-all:active {color: #165E80;}.hustle-module-1.hustle-calendar .ui-datepicker-calendar thead th {color: #35414A;}.hustle-module-1.hustle-calendar .ui-datepicker-calendar tbody tr td a,.hustle-module-1.hustle-calendar .ui-datepicker-calendar tbody tr td a:visited {background-color: #FFFFFF;color: #5D7380;}.hustle-module-1.hustle-calendar .ui-datepicker-calendar tbody tr td a:hover {background-color: #4D95B6;color: #FFFFFF;}.hustle-module-1.hustle-calendar .ui-datepicker-calendar tbody tr td a:focus,.hustle-module-1.hustle-calendar .ui-datepicker-calendar tbody tr td a:active {background-color: #4D95B6;color: #FFFFFF;} .hustle-ui.module_id_1 .hustle-form button.hustle-button-submit {padding: 2px 16px 2px 16px;border-width: 0px 0px 0px 0px;border-style: solid;border-color: #ffbf3b;border-radius: 0px 0px 0px 0px;background-color: #ffbf3b;-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);color: #333333;font: bold 13px/32px Open Sans;font-style: normal;letter-spacing: 0.5px;text-transform: none;text-decoration: none;}.hustle-ui.module_id_1 .hustle-form button.hustle-button-submit:hover {border-color: #ffbf3b;background-color: #ffbf3b;color: #333333;}.hustle-ui.module_id_1 .hustle-form button.hustle-button-submit:focus {border-color: #ffbf3b;background-color: #ffbf3b;color: #333333;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-form button.hustle-button-submit {padding: 2px 16px 2px 16px;border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);font: bold 13px/32px Open Sans;font-style: normal;letter-spacing: 0.5px;text-transform: none;text-decoration: none;}} .hustle-ui.module_id_1 .hustle-form .hustle-form-options {margin: 10px 0px 0px 0px;padding: 20px 20px 20px 20px;border-width: 0px 0px 0px 0px;border-style: solid;border-color: rgba(0,0,0,0);border-radius: 0px 0px 0px 0px;background-color: #165E80;-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-form .hustle-form-options {margin: 10px 0px 0px 0px;padding: 20px 20px 20px 20px;border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);}} .hustle-ui.module_id_1 .hustle-form .hustle-form-options .hustle-group-title {display: block;margin: 0 0 20px;padding: 0;border: 0;color: #FFFFFF;font: bold 13px/22px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;text-align: left;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-form .hustle-form-options .hustle-group-title {font: bold 13px/22px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;text-align: left;}} .hustle-ui.module_id_1 .hustle-layout-form .hustle-checkbox.hustle-gdpr {margin: 10px 0px 0px 0px;}.hustle-ui.module_id_1 .hustle-layout-form .hustle-checkbox.hustle-gdpr span[aria-hidden] {border-width: 0px 0px 0px 0px;border-style: solid;border-color: #75A9C2;border-radius: 0px 0px 0px 0px;background-color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-layout-form .hustle-checkbox.hustle-gdpr span[aria-hidden]:before {color: #78B5D1;}.hustle-ui.module_id_1 .hustle-layout-form .hustle-checkbox.hustle-gdpr span:not([aria-hidden]) {color: #FFFFFF;font: normal 12px/1.7em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;text-align: left;}.hustle-ui.module_id_1 .hustle-layout-form .hustle-checkbox.hustle-gdpr span:not([aria-hidden]) a {color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-layout-form .hustle-checkbox.hustle-gdpr span:not([aria-hidden]) a:hover {color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-layout-form .hustle-checkbox.hustle-gdpr span:not([aria-hidden]) a:focus {color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-layout-form .hustle-checkbox.hustle-gdpr input:checked + span[aria-hidden] {border-color: #4C87A3;background-color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-layout-form .hustle-checkbox.hustle-gdpr.hustle-field-error + span[aria-hidden] {border-color: #D43858 !important;background-color: #FFFFFF !important;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout-form .hustle-checkbox.hustle-gdpr {margin: 10px 0px 0px 0px;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout-form .hustle-checkbox.hustle-gdpr span[aria-hidden] {border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout-form .hustle-checkbox.hustle-gdpr span:not([aria-hidden]) {font: normal 12px/1.7em Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;text-align: left;}} .hustle-ui.module_id_1 .hustle-layout .hustle-error-message {margin: 20px 0px 0px 0px;background-color: #FFFFFF;box-shadow: inset 4px 0 0 0 #D43858;-moz-box-shadow: inset 4px 0 0 0 #D43858;-webkit-box-shadow: inset 4px 0 0 0 #D43858;}.hustle-ui.module_id_1 .hustle-layout .hustle-error-message p {color: #D43858;font: normal 12px/20px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;text-align: left;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-error-message {margin: 20px 0px 0px 0px;}.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-layout .hustle-error-message p {font: normal 12px/20px Open Sans;font-style: normal;letter-spacing: 0px;text-transform: none;text-decoration: none;text-align: left;}} .hustle-ui.module_id_1 .hustle-success {padding: 40px 40px 40px 40px;border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;border-color: rgba(0,0,0,0);background-color: #176387;box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);color: #FFFFFF;}.hustle-ui.module_id_1 .hustle-success [class*="hustle-icon-"] {color: #4D95B6;}.hustle-ui.module_id_1 .hustle-success a,.hustle-ui.module_id_1 .hustle-success a:visited {color: #00cecd;}.hustle-ui.module_id_1 .hustle-success a:hover {color: #4D95B6;}.hustle-ui.module_id_1 .hustle-success a:focus,.hustle-ui.module_id_1 .hustle-success a:active {color: #4D95B6;}.hustle-ui.module_id_1 .hustle-success-content b,.hustle-ui.module_id_1 .hustle-success-content strong {font-weight: bold;}.hustle-ui.module_id_1 .hustle-success-content blockquote {margin-right: 0;margin-left: 0;}@media screen and (min-width: 783px) {.hustle-ui:not(.hustle-size--small).module_id_1 .hustle-success {padding: 40px 40px 40px 40px;border-width: 0px 0px 0px 0px;border-style: solid;border-radius: 0px 0px 0px 0px;box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-moz-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);-webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);}} .hustle-ui.module_id_1 .hustle-layout .hustle-group-content blockquote {border-left-color: #78B5D1;}</style> <script> // init Isotope var $grid = $('.isogrid').isotope({ itemSelector: '.element-item', layoutMode: 'masonry', stagger: 30, transitionDuration: '0.1s', masonry: { columnWidth: 50 }, cellsByRow: { columnWidth: 50, rowHeight: 220 }, masonryHorizontal: { rowHeight: 50 }, cellsByColumn: { columnWidth: 50, rowHeight: 220 } }); // change is-checked class on buttons $('.button-group').each( function( i, buttonGroup ) { var $buttonGroup = $( buttonGroup ); $buttonGroup.on( 'click', 'button', function() { $buttonGroup.find('.is-checked').removeClass('is-checked'); $( this ).addClass('is-checked'); }); }); // filter functions // bind filter button click $('.filters-button-group').on( 'click', 'button', function() { var filterValue = $( this ).attr('data-filter'); // use filterFn if matches value filterValue = filterValue; $grid.isotope({ filter: filterValue }); }); // change is-checked class on buttons $('.button-group').each( function( i, buttonGroup ) { var $buttonGroup = $( buttonGroup ); $buttonGroup.on( 'click', 'button', function() { $buttonGroup.find('.is-checked').removeClass('is-checked'); $( this ).addClass('is-checked'); }); }); </script> </body> </html><!-- FILE ARCHIVED ON 06:14:08 Jan 21, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 09:16:27 Mar 02, 2025. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.619 exclusion.robots: 0.03 exclusion.robots.policy: 0.018 esindex: 0.011 cdx.remote: 27.235 LoadShardBlock: 148.408 (3) PetaboxLoader3.datanode: 124.061 (4) load_resource: 111.427 PetaboxLoader3.resolve: 53.405 -->

Pages: 1 2 3 4 5 6 7 8 9 10