{"id":245560,"date":"2025-02-11T20:00:55","date_gmt":"2025-02-11T20:00:55","guid":{"rendered":"https:\/\/logmeonce.com\/resources\/go-mfa\/"},"modified":"2025-02-11T20:00:55","modified_gmt":"2025-02-11T20:00:55","slug":"go-mfa","status":"publish","type":"post","link":"https:\/\/logmeonce.com\/resources\/go-mfa\/","title":{"rendered":"Implementing MFA in Go Applications"},"content":{"rendered":"<div class=\"336cb5b64765e27a1a6c1bb71b941f1a\" data-index=\"1\" style=\"float: none; margin:10px 0 10px 0; text-align:center;\">\n<script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-4830628043307652\"\r\n     crossorigin=\"anonymous\"><\/script>\r\n<!-- above content -->\r\n<ins class=\"adsbygoogle\"\r\n     style=\"display:block\"\r\n     data-ad-client=\"ca-pub-4830628043307652\"\r\n     data-ad-slot=\"5864845439\"\r\n     data-ad-format=\"auto\"\r\n     data-full-width-responsive=\"true\"><\/ins>\r\n<script>\r\n     (adsbygoogle = window.adsbygoogle || []).push({});\r\n<\/script>\n<\/div>\n<p>The recent leak of passwords has sent shockwaves through the <strong>cybersecurity community<\/strong>, highlighting the vulnerabilities that many users face online. These leaked passwords, often appearing in <strong>data breaches<\/strong> from popular websites and services, serve as a stark reminder of the importance of <strong>strong, unique credentials<\/strong>. With millions of passwords exposed, the implications for users are significant; it not only jeopardizes their personal information but also underscores the necessity of implementing robust security measures like multi-factor authentication (MFA). As we navigate this landscape of digital threats, understanding the significance of <strong>password leaks<\/strong> becomes crucial for safeguarding our online identities.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_77 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/logmeonce.com\/resources\/go-mfa\/#Key_Highlights\" >Key Highlights<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/logmeonce.com\/resources\/go-mfa\/#Understanding_MFA_Authentication_Flow\" >Understanding MFA Authentication Flow<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/logmeonce.com\/resources\/go-mfa\/#Setting_up_TOTP_With_the_Gotp_Library\" >Setting up TOTP With the Gotp Library<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/logmeonce.com\/resources\/go-mfa\/#Creating_User_Database_Models_for_MFA\" >Creating User Database Models for MFA<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/logmeonce.com\/resources\/go-mfa\/#Building_the_MFA_API_Endpoints\" >Building the MFA API Endpoints<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/logmeonce.com\/resources\/go-mfa\/#Integrating_QR_Code_Generation\" >Integrating QR Code Generation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/logmeonce.com\/resources\/go-mfa\/#Security_Best_Practices_and_Recovery_Options\" >Security Best Practices and Recovery Options<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/logmeonce.com\/resources\/go-mfa\/#Frequently_Asked_Questions\" >Frequently Asked Questions<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/logmeonce.com\/resources\/go-mfa\/#How_Do_You_Handle_MFA_During_Automated_Testing_and_CiCd_Pipelines\" >How Do You Handle MFA During Automated Testing and Ci\/Cd Pipelines?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/logmeonce.com\/resources\/go-mfa\/#Can_Multiple_Authenticator_Apps_Be_Registered_for_a_Single_User_Account\" >Can Multiple Authenticator Apps Be Registered for a Single User Account?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/logmeonce.com\/resources\/go-mfa\/#Whats_the_Performance_Impact_of_Implementing_MFA_on_High-Traffic_Applications\" >What&#039;s the Performance Impact of Implementing MFA on High-Traffic Applications?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/logmeonce.com\/resources\/go-mfa\/#How_to_Migrate_Existing_Users_to_MFA_Without_Disrupting_Their_Service\" >How to Migrate Existing Users to MFA Without Disrupting Their Service?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/logmeonce.com\/resources\/go-mfa\/#Should_MFA_Be_Enforced_Differently_for_Internal_Versus_External_Users\" >Should MFA Be Enforced Differently for Internal Versus External Users?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/logmeonce.com\/resources\/go-mfa\/#The_Bottom_Line\" >The Bottom Line<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Key_Highlights\"><\/span>Key Highlights<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>Use the Gotp library (github.com\/xlzd\/gotp) to generate and validate TOTP codes for secure authentication implementation.<\/li>\n<li>Set up database tables to store user credentials, MFA secrets, and recovery codes separately for organized security management.<\/li>\n<li>Create API endpoints for MFA registration, verification, and removal of authenticators with proper HTTPS protection.<\/li>\n<li>Implement multiple authentication factors combining passwords with TOTP codes that change every 30 seconds.<\/li>\n<li>Include recovery options and backup codes while following security best practices like using authenticator apps over SMS.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_MFA_Authentication_Flow\"><\/span>Understanding MFA Authentication Flow<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Let&#039;s plunge into the exciting world of <strong>Multi-Factor Authentication<\/strong>, or MFA for short! You know how you need a special password to gain access to your favorite video game? Well, MFA is like having a <strong>super-secret clubhouse<\/strong> with multiple locks to keep it extra safe!<\/p>\n<p>Think of it this way: first, you&#039;ll use <strong>something you know<\/strong> (like a password), then something you have (like your mom&#039;s phone for a <strong>special code<\/strong>), and sometimes even something super cool like your fingerprint! MFA creates a strong <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.descope.com\/learn\/post\/mfa\">layered defense system<\/a> to protect your information. <a target=\"_blank\" href=\"https:\/\/logmeonce.com\/resources\/examples-of-mfa\/\">MFA significantly reduces unauthorized access<\/a> to accounts and services, making it essential for online security.<\/p>\n<p>Have you ever played &#034;Simon Says&#034;? MFA is kind of like that &#8211; you follow specific steps in order. First comes your password, then maybe a special code sent to your phone, and boom &#8211; you&#039;re in!<\/p>\n<p>It&#039;s like having a <strong>triple-layer ice cream cone<\/strong> of security. Each layer makes it harder for bad guys to break in!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Setting_up_TOTP_With_the_Gotp_Library\"><\/span>Setting up TOTP With the Gotp Library<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Three awesome libraries help us add <strong>TOTP security<\/strong> to our Go programs! My favorite is <strong>github.com\/xlzd\/gotp<\/strong> &#8211; it&#039;s like having a secret code machine in your pocket. Want to know how it works?<\/p>\n<p>First, we create a special TOTP key using <strong>totp.Generate<\/strong>). It&#039;s like making a secret handshake with your phone! <a target=\"_blank\" href=\"https:\/\/logmeonce.com\/resources\/mfa-two-factor-authentication\/\">Multi-Factor Authentication<\/a> is essential for enhancing account security.<\/p>\n<p>Then, we can generate 6-digit codes that change every 30 seconds. <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/dev.to\/kittipat1413\/implementing-two-factor-authentication-2fa-with-totp-in-golang-3o07\">Time-based passwords<\/a> enhance application security by requiring an additional verification factor. Isn&#039;t that cool?<\/p>\n<p>When you type in your code, the server checks if it matches using <strong>totp.Validate<\/strong>). It&#039;s just like when you&#039;re playing &#034;Simon Says&#034; &#8211; both sides need to do the same thing!<\/p>\n<p>The server&#039;s pretty flexible though &#8211; it gives you a whole minute to type your code correctly.<\/p>\n<p>Want to try it yourself? We can display the key as a <strong>QR code<\/strong> for your phone to scan!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Creating_User_Database_Models_for_MFA\"><\/span>Creating User Database Models for MFA<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Building a <strong>secure database<\/strong> for MFA is like creating a super-secret clubhouse where everyone has <strong>special badges<\/strong>! You know how your backpack has different pockets for different things? That&#039;s how our database works too!<\/p>\n<p>First, we&#039;ll make <strong>special tables<\/strong> &#8211; think of them like different drawers in your desk. One drawer holds all the user names (that&#039;s you!), another keeps track of special roles (like being a team captain), and another stores <strong>secret codes<\/strong> (just like your treasure map&#039;s special markings!). Each of these tables can be linked to various <a target=\"_blank\" href=\"https:\/\/logmeonce.com\/resources\/how-does-mfa-work\/\">authentication factors<\/a> to ensure comprehensive security.<\/p>\n<p>Want to know the coolest part? When you sign up for MFA, it&#039;s like getting a <strong>superhero upgrade<\/strong>! We&#039;ll safely store your phone number or special code generator, kind of like how you keep your favorite trading cards in protective sleeves. Adding <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/vertabelo.com\/blog\/user-authentication-module\/\">salt to passwords<\/a> makes each user&#039;s secret code unique and extra safe, just like adding a special sticker to your trading card. Isn&#039;t that neat?<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Building_the_MFA_API_Endpoints\"><\/span>Building the MFA API Endpoints<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>When you&#039;re ready to share your super-secret MFA clubhouse with others, you&#039;ll need some special doors &#8211; we call these <strong>API endpoints<\/strong>!<\/p>\n<p>Think of them like the <strong>secret passages<\/strong> in your favorite video game, where you need different keys to get through. The access tokens you&#039;ll use have a <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/auth0.com\/docs\/secure\/multi-factor-authentication\/manage-mfa-auth0-apis\/manage-authenticator-factors-mfa-api\">default expiry of 10 minutes<\/a>.<\/p>\n<p>I&#039;ll help you build these magical doors! First, we&#039;ll create endpoints for adding <strong>new authenticators<\/strong> &#8211; like getting a new house key made.<\/p>\n<p>Then, we&#039;ll make endpoints for checking if your key works (verification) and removing old keys you don&#039;t need anymore. It&#039;s just like having a security guard who checks your special badge!<\/p>\n<p>You&#039;ll need to protect these doors extra well.<\/p>\n<p>We&#039;ll use <strong>special tokens<\/strong> (like secret handshakes) and make sure everything travels through HTTPS (imagine an invisible force field). Pretty cool, right?<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Integrating_QR_Code_Generation\"><\/span>Integrating QR Code Generation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Let&#039;s plunge into the magical world of QR codes &#8211; those funky square patterns that look like robot confetti! I&#039;ll show you how to create these awesome codes in your Go applications using some super cool tools. QR codes are essential for <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/help.id.me\/hc\/en-us\/articles\/360018113073-Setting-up-code-generator-multi-factor-authentication-MFA\">MFA code generation<\/a> in authentication systems.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: center\">Feature<\/th>\n<th style=\"text-align: center\">What it Does<\/th>\n<th style=\"text-align: center\">Why it&#039;s Cool<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: center\">Colors<\/td>\n<td style=\"text-align: center\">Changes code colors<\/td>\n<td style=\"text-align: center\">Makes it pop like a rainbow!<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center\">Shapes<\/td>\n<td style=\"text-align: center\">Square or circle dots<\/td>\n<td style=\"text-align: center\">Like building with LEGOs<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center\">Logos<\/td>\n<td style=\"text-align: center\">Adds your picture<\/td>\n<td style=\"text-align: center\">Your secret stamp<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center\">Size<\/td>\n<td style=\"text-align: center\">Makes it big or small<\/td>\n<td style=\"text-align: center\">Just right for your needs<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Have you ever wondered how your phone knows what&#039;s in a QR code? It&#039;s like having x-ray vision! We&#039;ll use the &#039;go-qrcode&#039; library to make our codes. It&#039;s as easy as writing &#039;qrcode.Encode()&#039; &#8211; just like saying the magic words to open a secret door! Want to add your own colors? You can make it look like your favorite ice cream flavors!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Security_Best_Practices_and_Recovery_Options\"><\/span>Security Best Practices and Recovery Options<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Security isn&#039;t just about having fancy locks &#8211; it&#039;s like building the ultimate fortress for your digital treasure!<\/p>\n<p>Think of <strong>MFA<\/strong> as having multiple secret handshakes to enter your clubhouse. Cool, right?<\/p>\n<p>I always tell my friends to use <strong>authenticator apps<\/strong> instead of text messages &#8211; it&#039;s like choosing a super-powered shield instead of a paper one!<\/p>\n<p>Have you ever played &#034;Simon Says&#034;? Well, MFA is kind of like that, but with special codes and patterns to keep the bad guys out.<\/p>\n<p>Let&#039;s make sure you&#039;ve got backup plans too! Just like keeping a spare house key with someone you trust, we&#039;ll create <strong>recovery codes<\/strong>.<\/p>\n<p>Keep them super safe &#8211; maybe in your <strong>special treasure box<\/strong>!<\/p>\n<p>Over 80% of data breaches happen because of <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.blog.darwinapps.com\/blog\/10-multi-factor-authentication-mfa-best-practices-and-implementation-strategy\">compromised login credentials<\/a> these days.<\/p>\n<p>And remember, when something feels fishy online, it probably is. <strong>Trust your instincts<\/strong>!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Frequently_Asked_Questions\"><\/span>Frequently Asked Questions<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"How_Do_You_Handle_MFA_During_Automated_Testing_and_CiCd_Pipelines\"><\/span>How Do You Handle MFA During Automated Testing and Ci\/Cd Pipelines?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>I handle <strong>MFA<\/strong> in testing by creating special <strong>test tokens<\/strong> that bypass the normal MFA process.<\/p>\n<p>I&#039;ll set up mock SMS services to catch verification codes automatically.<\/p>\n<p>In <strong>CI\/CD pipelines<\/strong>, I use secure environment variables to store these test tokens.<\/p>\n<p>During testing, I temporarily disable MFA but keep close track of security.<\/p>\n<p>When everything moves to production, I make sure all test bypasses are removed.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Can_Multiple_Authenticator_Apps_Be_Registered_for_a_Single_User_Account\"><\/span>Can Multiple Authenticator Apps Be Registered for a Single User Account?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Yes, I can tell you that most <strong>MFA systems<\/strong> let you use <strong>multiple authenticator apps<\/strong>!<\/p>\n<p>Just like having spare keys to your house, you can usually add up to 5 different authenticator apps for one account.<\/p>\n<p>I primarily use this when I want my work phone and personal phone to both generate codes.<\/p>\n<p>But remember &#8211; adding more apps can make your <strong>account a bit less secure<\/strong>, like leaving extra keys around!<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Whats_the_Performance_Impact_of_Implementing_MFA_on_High-Traffic_Applications\"><\/span>What&#039;s the Performance Impact of Implementing MFA on High-Traffic Applications?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>I&#039;ll tell you straight up &#8211; <strong>MFA<\/strong> can slow things down when lots of people use your app at once.<\/p>\n<p>Think of it like a <strong>busy playground slide<\/strong> &#8211; if everyone has to do an extra step before sliding, the line gets longer!<\/p>\n<p>High-traffic apps need strong servers and clever coding to handle MFA smoothly.<\/p>\n<p>I&#039;ve seen some apps get 20-30% slower with MFA, but <strong>good design<\/strong> can reduce this impact considerably.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"How_to_Migrate_Existing_Users_to_MFA_Without_Disrupting_Their_Service\"><\/span>How to Migrate Existing Users to MFA Without Disrupting Their Service?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>I&#039;ll help you move your users to <strong>MFA smoothly<\/strong>!<\/p>\n<p>First, I&#039;d split them into small groups &#8211; just like making teams for a game. I&#039;ll start with a <strong>test group<\/strong>, then gradually add more users.<\/p>\n<p>I make sure to tell everyone what&#039;s happening through friendly emails and provide <strong>easy-to-follow guides<\/strong>.<\/p>\n<p>If someone gets stuck, I&#039;ve got backup plans ready to help them, just like having a spare controller when gaming!<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Should_MFA_Be_Enforced_Differently_for_Internal_Versus_External_Users\"><\/span>Should MFA Be Enforced Differently for Internal Versus External Users?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>I definitely recommend enforcing <strong>MFA<\/strong> differently for internal and <strong>external users<\/strong>!<\/p>\n<p>Think of it like two different playgrounds. <strong>Internal users<\/strong> (like your team) need stricter rules because they can access more sensitive stuff &#8211; just like having a special key to the teacher&#039;s lounge.<\/p>\n<p>External users (like customers) need simpler, user-friendly MFA that&#039;s still secure, like using a secret handshake to enter the clubhouse.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"The_Bottom_Line\"><\/span>The Bottom Line<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Implementing multi-factor authentication (MFA) is a crucial step in safeguarding your applications and user accounts. However, securing your accounts doesn&#039;t end there. <strong>Password security<\/strong>, management, and the emerging realm of <strong>passkey management<\/strong> are equally important. With cyber threats constantly evolving, it&#039;s vital to adopt comprehensive solutions to protect your sensitive information.<\/p>\n<p>To enhance your security strategy, consider tools that simplify <strong>password management<\/strong> and bolster your defenses against unauthorized access. By using a reliable <strong>password manager<\/strong>, you can generate strong, unique passwords for each of your accounts and store them securely.<\/p>\n<p>Take the first step towards better password security by signing up for a free account at <a href=\"https:\/\/logmeonce.com\/\">LogMeOnce<\/a>. With its innovative features, you can effortlessly manage your passwords and embrace a more <strong>secure online experience<\/strong>. Don&#039;t wait&#x2014;protect your digital life today!<\/p>\n\n<div style=\"font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>Navigate through the essentials of adding Multi-Factor Authentication to your Go applications for enhanced security and user protection.<\/p>\n","protected":false},"author":5,"featured_media":245559,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[32386],"tags":[35955,36661,35827],"class_list":["post-245560","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-applications","tag-enhanced-security-2","tag-go-applications","tag-multi-factor-authentication-2"],"acf":[],"_links":{"self":[{"href":"https:\/\/logmeonce.com\/resources\/wp-json\/wp\/v2\/posts\/245560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/logmeonce.com\/resources\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/logmeonce.com\/resources\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/logmeonce.com\/resources\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/logmeonce.com\/resources\/wp-json\/wp\/v2\/comments?post=245560"}],"version-history":[{"count":0,"href":"https:\/\/logmeonce.com\/resources\/wp-json\/wp\/v2\/posts\/245560\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/logmeonce.com\/resources\/wp-json\/wp\/v2\/media\/245559"}],"wp:attachment":[{"href":"https:\/\/logmeonce.com\/resources\/wp-json\/wp\/v2\/media?parent=245560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/logmeonce.com\/resources\/wp-json\/wp\/v2\/categories?post=245560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/logmeonce.com\/resources\/wp-json\/wp\/v2\/tags?post=245560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}