{"componentChunkName":"component---src-templates-blog-list-template-js","path":"/73","result":{"data":{"allMarkdownRemark":{"edges":[{"node":{"excerpt":"In a world where data breaches aren’t uncommon, businesses are always on the verge of compromising sensitive information, and cybersecurity…","fields":{"slug":"/identity/beginners-guide-zero-trust-security/"},"html":"<p>In a world where data breaches aren’t uncommon, businesses are always on the verge of compromising sensitive information, and cybersecurity best practices become the need of the hour. </p>\n<p>For years, enterprises have modeled cybersecurity around a specific virtual perimeter of trust, including trusted users, devices, and trusted network infrastructure. </p>\n<p>Although these fundamental entities are considered safe and trustworthy, this cybersecurity model is the one that’s been exploited by cybercriminals for years. </p>\n<p>Undoubtedly, there’s an immediate need for a robust mechanism that doesn’t leave any loophole in the entire system consisting of numerous devices, users, and digital touchpoints and provides a risk-free ecosystem. </p>\n<p>Here’s where the <a href=\"https://www.loginradius.com/blog/identity/sase-zero-trust/\">zero trust security model</a> comes into play. </p>\n<p>The shortcomings of the current cybersecurity system that can be quickly analyzed by hackers that are always on a hunt for finding loopholes can be fixed by implementing a zero trust security model across the entire network. </p>\n<p>Let’s understand the concept of zero trust in detail and why businesses need to put their best foot forward in deploying zero trust security without further delay. </p>\n<h2 id=\"what-is-zero-trust-security\" style=\"position:relative;\"><a href=\"#what-is-zero-trust-security\" aria-label=\"what is zero trust security permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What is Zero Trust Security</h2>\n<p>Zero trust can be defined as the security concept based on a belief that enterprises shouldn’t automatically trust any device or individual, whether inside or outside its perimeters and should strictly verify everything before granting access. </p>\n<p>In a nutshell, zero trust relies on the principle of “don’t trust anyone.” This architecture cuts all the access points until proper verification is done and trust is established. </p>\n<p>No access is provided until the system verifies the individual or device demanding n access to the IP address, device, or storage. </p>\n<p>This strategic initiative helps prevent data breaches as the concept of trusting anyone is eliminated, even if the access request is from within the network. </p>\n<p>Hence, implementing zero trust architecture ensures the highest level of security and mitigates the risk of a data breach or unauthorized access.</p>\n<h2 id=\"why-do-you-need-zero-trust-security\" style=\"position:relative;\"><a href=\"#why-do-you-need-zero-trust-security\" aria-label=\"why do you need zero trust security permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Why Do You Need Zero Trust Security</h2>\n<p>The zero trust security model strictly believes that everything inside is by default secure, and the only thing that requires adequate security is outside network access. </p>\n<p>Moreover, security experts now firmly believe that the conventional security approach is good for nothing, especially in a world where most data breaches are caused by bypassing the corporate firewalls and the hackers could move inside a private network without enough resistance. </p>\n<p>Many businesses are letting too many things run way too openly on too many connections, which is perhaps why they get targeted by cybercriminals that are always on a hunt for enterprise networks with minimal layers of security. </p>\n<p>Since the network is too open for all inside the organization, anyone can share everything, which is alarming. </p>\n<p>Hence enterprises today need a whole new way of thinking regarding access management within the organization, which helps minimize data compromise by a bad external actor. </p>\n<p><a href=\"https://www.loginradius.com/resource/zero-trust-security/\"><img src=\"/ff13eece00b0b7c800af8a39cd3462a5/WP-zero-trust-1.webp\" alt=\"WP-zero-trust-1\"></a></p>\n<h2 id=\"benefits-of-getting-zero-trust-security-mechanism\" style=\"position:relative;\"><a href=\"#benefits-of-getting-zero-trust-security-mechanism\" aria-label=\"benefits of getting zero trust security mechanism permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Benefits of Getting Zero Trust Security Mechanism</h2>\n<h3 id=\"1-safeguards-sensitive-business-information-and-brand-repute\" style=\"position:relative;\"><a href=\"#1-safeguards-sensitive-business-information-and-brand-repute\" aria-label=\"1 safeguards sensitive business information and brand repute permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. Safeguards Sensitive Business Information and Brand Repute</h3>\n<p>Securing sensitive business data should be the #1 priority for enterprises embarking on a journey to digital transformation, which not only prevents losses worth millions of dollars but eventually preserves brand reputation. </p>\n<p>Lack of a robust security mechanism could also lead to compromised consumer identities that further cause financial losses.</p>\n<p>Moreover, consumers’ refusal to do business with a breached enterprise will naturally affect the overall revenues.</p>\n<p>Enforcing an effective Zero Trust solution will not only ensure that only authenticated and authorized individuals and devices have access to resources and applications but will also help <a href=\"https://www.loginradius.com/blog/identity/how-to-handle-data-breaches/\">mitigate data breaches</a>, preventing many of these negative consequences.</p>\n<h3 id=\"2-greater-visibility\" style=\"position:relative;\"><a href=\"#2-greater-visibility\" aria-label=\"2 greater visibility permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. Greater Visibility</h3>\n<p>Since Zero Trust never trusts anyone, you can always decide what resources, data, and activity you’ll need to add to your security strategy.</p>\n<p>All information and computing sources are secure, and every user needs to go through a stringent authentication process to gain access to specific resources. Once you have set up the monitoring that covers all your activities and resources, you gain complete visibility into how and who accesses your organization’s network.</p>\n<p>This means you have precise data regarding the time, location, and application involved in each request.</p>\n<p>Moreover, your overall security system helps to flag suspicious behaviors and keeps track of every activity that occurs.</p>\n<h3 id=\"3-secures-remote-workforce\" style=\"position:relative;\"><a href=\"#3-secures-remote-workforce\" aria-label=\"3 secures remote workforce permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. Secures Remote Workforce</h3>\n<p>One of the biggest challenges IT organizations face today is the sudden shift to the remote working ecosystem.</p>\n<p>As per the latest<a href=\"https://lp.skyboxsecurity.com/WICD-2020-11-WW-Distributed-Workforce-Report-Reg.html\"> stats</a>, around 73% of IT professionals C-level executives are concerned that the distributed workforce has eventually introduced new vulnerabilities along with a sudden increase in exposure.</p>\n<p>With Zero Trust in place, identity is undeniably the perimeter and is attached to users, applications, and devices seeking access, reinforcing security.</p>\n<p>Moreover, the dependency on firewalls, which aren’t the best line of defense, is reduced as a robust security mechanism reassuring that users spread across the world can securely access data across the cloud.</p>\n<h2 id=\"conclusion\" style=\"position:relative;\"><a href=\"#conclusion\" aria-label=\"conclusion permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Conclusion</h2>\n<p>With the increasing risk of security breaches from within a network, the need for a zero trust mechanism becomes more crucial than ever before. </p>\n<p>Decision-makers and IT department heads of an organization should consider putting their best foot forward in <a href=\"https://www.loginradius.com/blog/identity/maintaining-quality-data-security-practices/\">securing important consumer information</a> and business data by leveraging robust layers of defense through a zero trust security model. </p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=beginners-guide-zero-trust-security\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"book-a-demo-loginradius\"></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"August 05, 2021","updated_date":null,"description":"With the rising number of cyberattacks, there’s an immediate need for a robust mechanism that provides a risk-free digital ecosystem. Zero trust helps businesses create the most secure environment that mitigates the risk of any kind of security breach.","title":"A Beginner's Guide to Zero Trust Security Model","tags":["zero trust security","cybersecurity","mfa"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.9047619047619047,"src":"/static/61286322d61380386bdb27d250ddfce2/58556/beginners-guide-zero-trust-security-cover.webp","srcSet":"/static/61286322d61380386bdb27d250ddfce2/61e93/beginners-guide-zero-trust-security-cover.webp 200w,\n/static/61286322d61380386bdb27d250ddfce2/1f5c5/beginners-guide-zero-trust-security-cover.webp 400w,\n/static/61286322d61380386bdb27d250ddfce2/58556/beginners-guide-zero-trust-security-cover.webp 800w,\n/static/61286322d61380386bdb27d250ddfce2/cc834/beginners-guide-zero-trust-security-cover.webp 1024w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.webp"}}}},{"node":{"excerpt":"Leaving your employees defenseless during remote work can make your business vulnerable to potential risks. The internet poses numerous…","fields":{"slug":"/growth/secure-your-remote-workforce-with-identity-management/"},"html":"<p>Leaving your employees defenseless during remote work can make your business vulnerable to potential risks. The internet poses numerous threats for remote workers. They can easily fall prey to hackers, scammers, and fraudsters. You can protect them by implementing remote  work <a href=\"https://www.loginradius.com/blog/identity/cybersecurity-best-practices-for-enterprises/\">security best practices</a>  in your digital workplace, such as identity management, for instance.</p>\n<p><a rel=\"nofollow\" href=\"https://www.statista.com/statistics/417602/global-market-forecast-identity-and-access-management/\">According to Statista</a>, business spending for identity management systems will reach $13.92 billion by the end of 2021. This is an organizational process that ensures individuals have appropriate access to tools and resources to do their jobs. It associates user rights and restrictions with established identities. This way, only authenticated users can access specific data and applications within your organization. Hence, many businesses consider identity management an essential tool for security.</p>\n<p>With that, here are some of the best practices to ensure cybersecurity for remote workers  using identity management.</p>\n<h2 id=\"1-choose-the-right-software\" style=\"position:relative;\"><a href=\"#1-choose-the-right-software\" aria-label=\"1 choose the right software permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. Choose the right software</h2>\n<p>Nowadays, there are numerous identity access management tools to choose from. All of which offer different sets of features and functions to secure your business from potential threats. And while there is no such thing as a “correct” software, make sure to choose the right one for your business. Start by determining what your organization’s specific needs to tighten security are. Ask questions such as:</p>\n<ul>\n<li>How many employees work remotely?</li>\n<li>What type of applications do they use?</li>\n<li>What data do they have authorized access to?</li>\n<li>How secure is your IT infrastructure?</li>\n<li>What <a href=\"https://www.loginradius.com/blog/identity/pii-compliance-enterprise/\">security compliances</a> do you have to consider?</li>\n</ul>\n<p>After answering these questions, you can determine the features and functions you need for your identity management software. As a result, you can narrow down the list of software to choose from, making it easier to compare and contrast solutions.</p>\n<h2 id=\"2-develop-a-zero-trust-approach\" style=\"position:relative;\"><a href=\"#2-develop-a-zero-trust-approach\" aria-label=\"2 develop a zero trust approach permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. Develop a zero-trust approach</h2>\n<p>Zero trust refers to a network of security models that believe both users and applications shouldn’t be trusted. It requires mandatory verification, both inside and outside your network, to be able to access data and resources from your system. This ensures data security for remote workers  who use multiple devices and applications outside your networks.</p>\n<p>Businesses should be wary of everything on the internet. In fact, even on-premises or offline applications can be breached by hackers, scammers, and fraudsters. You need to start living and breathing zero-trust philosophy by continuously authenticating identities and user access.</p>\n<p>Consider adopting this approach into your remote work policies and protocols so your remote employees will be guided accordingly. One great example would be implementing multi-factor authentication for each login. This will add an extra layer of protection and verification for your users.</p>\n<p><a href=\"https://www.loginradius.com/resource/zero-trust-security/\"><img src=\"/ff13eece00b0b7c800af8a39cd3462a5/WP-zero-trust-1.webp\" alt=\"WP-zero-trust-1\"></a></p>\n<h2 id=\"3-perform-routine-review-of-accounts\" style=\"position:relative;\"><a href=\"#3-perform-routine-review-of-accounts\" aria-label=\"3 perform routine review of accounts permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. Perform routine review of accounts</h2>\n<p>A common practice among businesses is encouraging their employees to update and change their passwords and account details periodically. This way, your database remains updated. Likewise, frequent password changes can minimize potential risks of password breaches.</p>\n<p>With that, it only follows that you perform a routine review of all the accounts you manage in your identity management system. This is where you constantly authenticate and validate the identities of your users and monitor the security of your database. Consider <a href=\"https://www.loginradius.com/blog/engineering/guest-post/user-authentication-in-python/\">implementing user authentication in a Python application</a> to help cover all bases during the process.</p>\n<p>You should also watch out for orphan accounts in your system. Whenever a user moves to a different company, you need to make sure that their accounts are properly off-boarded from your network. Orphaned accounts are often goldmines for hackers where they can gather credentials and identities to breach and attack your business. Hence, you must remove all orphaned accounts from your system.</p>\n<h2 id=\"4-centralize-data-and-identities\" style=\"position:relative;\"><a href=\"#4-centralize-data-and-identities\" aria-label=\"4 centralize data and identities permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4. Centralize data and identities</h2>\n<p>Create a robust identity management system by centralizing the data you collect from your users. Having data silos can make it harder to keep track of all the credentials and information about your remote workers. As a result, this makes your system more vulnerable to data leaks and breaches. By creating a single location for user profiles, you can secure and monitor user authentication and access.</p>\n<p>Proper data management often requires two things—a reliable software or system to store the data in and an expert or group of experts to maintain the database. This makes Management Information Systems (MIS) one of the <a rel=\"nofollow\" href=\"https://www.guide2research.com/research/highest-paying-college-majors\">highest paying majors</a> nowadays as more businesses focus on strengthening their IT infrastructures and security. With their background and expertise, they ensure that your databases are secured and well-maintained.</p>\n<h2 id=\"5-consider-single-sign-on-authentication\" style=\"position:relative;\"><a href=\"#5-consider-single-sign-on-authentication\" aria-label=\"5 consider single sign on authentication permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>5. Consider single sign-on authentication</h2>\n<p>For businesses that require their remote employees to use several applications at once, you need to be aware of the various hazards it can bring. For one, your remote employees need to remember the details of all their accounts such as passwords, email addresses, and more. This can be frustrating for others and might even lead to some security issues in the process. It can result in some forgetting their own credentials. Worse, others might end up writing or typing it down, leaving their account details vulnerable.</p>\n<p>Allow your workers to <a href=\"https://www.loginradius.com/blog/identity/bring-your-own-identity/\">bring their own identity</a> in various employee applications through single sign-on (SSO) authentication. Through SSO, your remote employees can access any of your web properties, mobile apps, and third-party systems with a single identity, streamlining their logins each time they go to work.</p>\n<h2 id=\"6-go-passwordless\" style=\"position:relative;\"><a href=\"#6-go-passwordless\" aria-label=\"6 go passwordless permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>6. Go passwordless</h2>\n<p>Forgetting passwords is a common issue for many users. This is especially true nowadays since almost everyone juggles several accounts all at once—both for personal and work-related reasons. Worse, <a rel=\"nofollow\" href=\"https://www.statista.com/statistics/1147830/common-password-habits-adults-country/\">around 32% of users</a> still manually enter their passwords for every account they have. This can pose potential security risks for your remote employees and your business if left ignored.</p>\n<p>Consider going passwordless with your employees’ logins for various business applications. Instead, opt to add a magic link feature to your mobile apps or email accounts, making it easier and more secure for users to sign in. You will simply send the link through your users’ respective email. By clicking on it, they will directly be logged in to their accounts. This process is almost like when you receive a one-time-password (OTP), but this time, you won’t have to enter any code or pin to get into your account. This helps prevent password-based attacks on your remote employees’ accounts.</p>\n<h2 id=\"7-integrate-with-other-solutions\" style=\"position:relative;\"><a href=\"#7-integrate-with-other-solutions\" aria-label=\"7 integrate with other solutions permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>7. Integrate with other solutions</h2>\n<p>One of the common remote access security best practices  among businesses is integration. By connecting your identity management system to your other business solutions, you can easily sync your data across all your applications. This includes your remote workers details and login credentials.</p>\n<p>A great example is <a href=\"https://www.loginradius.com/\">LoginRadius</a>. You can integrate it with any software that has an API. This streamlines real-time data flow and dismantles data silos within your systems. You can configure and monitor your integrations through their turnkey connections from their admin console.</p>\n<h2 id=\"conclusion\" style=\"position:relative;\"><a href=\"#conclusion\" aria-label=\"conclusion permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Conclusion</h2>\n<p>As your business migrates to a virtual workplace, you must learn how to maintain security when employees work remotely. Leaving them defenseless is also tantamount to making your organization vulnerable to potential risks. Protect your business by leveraging identity management.</p>\n<p>Through identity management, you reduce password issues and enhance security for your remote teams. It streamlines the process of logging in, authenticating, and authorizing access to your organization’s data and resources. To find out more about the benefits of identity management, <a href=\"https://www.loginradius.com/contact-sales2/\">contact our team</a>.</p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=secure-your-remote-workforce-with-identity-management\"><img src=\"/7ec35507d1ba9c2de6363116d90a895b/loginradius-free-Consultation.webp\" alt=\"book-a-demo-Consultation\"></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"August 04, 2021","updated_date":null,"description":"Learn about the best practices to ensure cybersecurity for remote workers using identity management","title":"7 Best Practices for Securing Your Remote Workforce with Identity Management","tags":["zero trust security","identity management","cybersecurity","cx"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/9609127fc31092a204610bed9fc2482b/58556/remote-workforce.webp","srcSet":"/static/9609127fc31092a204610bed9fc2482b/61e93/remote-workforce.webp 200w,\n/static/9609127fc31092a204610bed9fc2482b/1f5c5/remote-workforce.webp 400w,\n/static/9609127fc31092a204610bed9fc2482b/58556/remote-workforce.webp 800w,\n/static/9609127fc31092a204610bed9fc2482b/99238/remote-workforce.webp 1200w,\n/static/9609127fc31092a204610bed9fc2482b/7c22d/remote-workforce.webp 1600w,\n/static/9609127fc31092a204610bed9fc2482b/ec000/remote-workforce.webp 5760w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Vishal Sharma","github":null,"avatar":null}}}},{"node":{"excerpt":"In the past couple of years, the internet has become one of the indispensable parts of our lives, and we can’t imagine a day without it.  As…","fields":{"slug":"/identity/what-is-identity-security/"},"html":"<p>In the past couple of years, the internet has become one of the indispensable parts of our lives, and we can’t imagine a day without it. </p>\n<p>As of October 2023, the <a href=\"https://www.statista.com/statistics/617136/digital-population-worldwide/#:~:text=Worldwide%20digital%20population%202023&#x26;text=As%20of%20October%202023%2C%20there,population%2C%20were%20social%20media%20users.\">global internet user count reached 5.3 billion</a>, encompassing 65.7 percent of the world's population.</p>\n<p>However, this doesn’t mean that everyone who’s surfing the internet is secure and can’t be on the radar of cybercriminals. </p>\n<p>Thousands of individuals compromise their identities every day because of a weak line of defense and poor authentication mechanism at the service providers’ end. </p>\n<p>Moreover, the COVID-19 pandemic has also increased as the internet became the second home for every individual while everyone was locked inside their homes. </p>\n<p>As per global stats, the <a href=\"https://www.statista.com/statistics/1175657/increase-identity-theft-coronavirus-outbreak/\">total number of identity thefts has increased</a> substantially amid the global pandemic and is expected to inflate further. </p>\n<p>So what does it portray? </p>\n<p>Do we need a stringent mechanism to secure user identities as the conventional systems cannot handle massive amounts of user signups and logins?</p>\n<p>Yes, identity security undeniably needs the hour to secure all identities within a network (whether employees or consumers). </p>\n<p>Let’s understand what identity security is and why it’s crucial for businesses, especially in 2024 and beyond.</p>\n<h2 id=\"what-is-identity-security\" style=\"position:relative;\"><a href=\"#what-is-identity-security\" aria-label=\"what is identity security permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What is Identity Security</h2>\n<p>Identity security can be defined as a comprehensive way to secure digital identities within a network in the most basic sense. </p>\n<p>Any identity- whether an employee, third-party vendor, consumer, or IT admin can be privileged in specific ways that can lead to a security breach causing losses worth millions of dollars for an organization. </p>\n<p>Adding multiple layers of security through robust authentication and authorization can help mitigate the risk of identity theft. </p>\n<p>Since the outbreak of COVID-19 encouraged remote working ecosystems that aren’t as secure as traditional working environments, there’s an immediate need for an identity security solution for businesses adopting these remote working scenarios. </p>\n<h2 id=\"why-do-you-need-identity-security\" style=\"position:relative;\"><a href=\"#why-do-you-need-identity-security\" aria-label=\"why do you need identity security permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Why Do You Need Identity Security</h2>\n<p>In the past couple of years, businesses are compromising consumer identities that lead to financial losses and tarnished reputations. </p>\n<p>Even the most robust security system can’t ensure identity security without stringent authentication and authorization mechanisms in place. </p>\n<p>Apart from this, the sudden paradigm shift towards online platforms has also increased the number of signups and registrations on diverse platforms leading to an increased risk of data breaches since most users aren’t aware of online security best practices.</p>\n<p>Also, specific privacy and data security compliances like the GDPR and CCPA requires organizations storing consumer information to adhere to their regulations to ensure maximum safety to consumers while their data is being collected, stored, and managed. </p>\n<p><a href=\"https://www.loginradius.com/resource/digital-identity-future-whitepaper\"><img src=\"/d438539d94e8e2b50669e37a07e465d1/WP-future-dig-id.webp\" alt=\"WP-future-dig-id\"></a></p>\n<p>Hence there’s an immediate need to deploy a reliable <a href=\"https://www.loginradius.com/blog/identity/customer-identity-and-access-management/\">consumer identity and access management solution</a> (CIAM) that can offer identity security without hampering user experience.  </p>\n<p>Since we’ve learned the importance of identity security, now just glance at what benefits an enterprise gets with a CIAM solution in place. </p>\n<h3 id=\"1-multi-factor-authentication-mfa-and-risk-based-authentication-rba\" style=\"position:relative;\"><a href=\"#1-multi-factor-authentication-mfa-and-risk-based-authentication-rba\" aria-label=\"1 multi factor authentication mfa and risk based authentication rba permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. Multi-Factor Authentication (MFA) and Risk-Based Authentication (RBA)</h3>\n<p>Multi-factor authentication is one of the essential aspects when it comes to consumer identity security best practices. </p>\n<p>Adding multiple layers of authentication through a reliable CIAM helps prevent a network breach and eventually decreases any chance of identity misuse. </p>\n<p>Moreover, LoginRadius CIAM offers adaptive authentication through its RBA that helps protect consumer identity and sensitive business information, especially in high-risk situations. </p>\n<p>The LoginRadius RBA kicks in whenever a suspicious login attempt is detected and automatically adds another authentication layer to protect consumer identity and network. </p>\n<p>The best thing about RBA is that it gets automatically activated if it detects something fishy based on the number of unsuccessful attempts, geographical location, or other similar situations. Else, the user can normally sign in, which preserves a great user experience. </p>\n<h3 id=\"2-protecting-consumer-accounts\" style=\"position:relative;\"><a href=\"#2-protecting-consumer-accounts\" aria-label=\"2 protecting consumer accounts permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. Protecting Consumer Accounts</h3>\n<p>With a cutting-edge CIAM like LoginRadius, businesses can ensure the highest level of security when it comes to protecting their consumers’ accounts against different types of security threats. </p>\n<p>Enterprises can ensure that passwords are harder to crack with rigorous password policies and LoginRadius Multi-Factor Authentication and can leverage hashing and encryption to protect account credentials and data in transit and at rest.</p>\n<p>Also, our modern cloud infrastructure is protected to the highest industry standards. LoginRadius maintains all major security compliances for our application and data storage, including the <a href=\"https://www.loginradius.com/blog/identity/ccpa-vs-gdpr-the-compliance-war/\">GDPR and CCPA</a>. </p>\n<h3 id=\"3-streamlined-customer-experience\" style=\"position:relative;\"><a href=\"#3-streamlined-customer-experience\" aria-label=\"3 streamlined customer experience permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. Streamlined Customer Experience</h3>\n<p>A streamlined customer experience delivered by an organization reflects that it’s up-to-date and concerned about providing the most accessible login possible.</p>\n<p>By providing a smooth login experience for your applications and services, you encourage customers to try out more of your digital offerings. The result is a customer who is more embedded in your digital ecosystem without extra effort.</p>\n<p>For instance, <a href=\"https://www.loginradius.com/single-sign-on/\">implementing a single sign-on</a> through a customer identity and access management system like LoginRadius means a customer only needs one account for all of your digital touchpoints. Whether your customers are signing in from a browser or a mobile device, they’ll benefit from not having to sign in repeatedly. </p>\n<h2 id=\"final-thoughts\" style=\"position:relative;\"><a href=\"#final-thoughts\" aria-label=\"final thoughts permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Final Thoughts</h2>\n<p>Protecting consumers’ identity should be the top priority of enterprises collecting user information.</p>\n<p>However, creating a perfect harmony between identity security and delivering a flawless user experience requires a reliable CIAM in place. </p>\n<p>A robust cloud-based CIAM solution like <a href=\"https://www.loginradius.com/contact-sales2/\">LoginRadius</a> can be a game-changer, especially in a world where data breaches are pretty frequent, leading to losses worth millions of dollars.</p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=what-is-identity-security\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"book-a-demo-loginradius\"></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"August 03, 2021","updated_date":null,"description":"Thousands of individuals compromise their identities every day because of weak defense and poor authentication at the service providers’ end. Businesses need a robust identity management solution to navigate their digital transformation journey without compromising user identities and sensitive business information.","title":"What is Identity Security?","tags":["digital identity management","ciam solution","data security"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/7434871743be3608aa991dcac2d29fd4/58556/purpose-identity-security-2021-cover.webp","srcSet":"/static/7434871743be3608aa991dcac2d29fd4/61e93/purpose-identity-security-2021-cover.webp 200w,\n/static/7434871743be3608aa991dcac2d29fd4/1f5c5/purpose-identity-security-2021-cover.webp 400w,\n/static/7434871743be3608aa991dcac2d29fd4/58556/purpose-identity-security-2021-cover.webp 800w,\n/static/7434871743be3608aa991dcac2d29fd4/cc834/purpose-identity-security-2021-cover.webp 1024w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.webp"}}}},{"node":{"excerpt":"Introduction Personalized marketing is a promotional strategy tailored to the individual at the precise moment they require it, and there's…","fields":{"slug":"/growth/how-to-make-personalized-marketing-effective-with-consumer-identity/"},"html":"<h2 id=\"introduction\" style=\"position:relative;\"><a href=\"#introduction\" aria-label=\"introduction permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Introduction</h2>\n<p>Personalized marketing is a promotional strategy tailored to the individual at the precise moment they require it, and there's no other communication like it. The question is, how will you fulfill that promise? You may utilize tools to acquire and aggregate information about your clients' preferences. Read on to find out what these tools are and how they benefit your business.</p>\n<h2 id=\"what-is-consumer-identity-and-access-management-ciam\" style=\"position:relative;\"><a href=\"#what-is-consumer-identity-and-access-management-ciam\" aria-label=\"what is consumer identity and access management ciam permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What is Consumer Identity and Access Management (CIAM)?</h2>\n<p><a href=\"https://www.loginradius.com/blog/identity/customer-identity-and-access-management/\">Customer identity and access management</a> (CIAM) is a digital identity management software solution for businesses that combines login verification with customer data storage. CIAM aims to improve the customer's sign-up and login experience while securely managing customer identities.</p>\n<p>Consumer identity management through a CIAM offers the luxury of a centralized customer database that links all other apps and services to provide a secure and seamless customer experience. </p>\n<p>CIAM solutions typically include features such as customer registration, authentication, authorization, and profile management. They allow customers to create and manage their own accounts, and provide a unified view of customer data across different channels and devices. </p>\n<p>CIAM solutions also typically offer self-service capabilities for customers, such as password resets and profile updates.</p>\n<h2 id=\"grow-your-business-with-ciam\" style=\"position:relative;\"><a href=\"#grow-your-business-with-ciam\" aria-label=\"grow your business with ciam permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Grow Your Business with CIAM</h2>\n<p><img src=\"/4e361f4d8f25d1f0c06d1ec1a9795297/personalized-marketing-experience.webp\" alt=\"personalized-marketing-experience\"></p>\n<p>Providing consumers with digital services is a delicate balancing act. You must provide an exceptional client experience while also establishing trust in the security of your services. If you get one of these things incorrect, the consequences can be devastating.</p>\n<p>CIAM (Consumer Identity and Access Management) allows you to collect and maintain customer IDs to support digital efforts securely. You can gain a better understanding of the whole customer relationship, improve processes, and provide a consistent and unified consumer experience.</p>\n<p>CIAM is a subset of Identity and Access Management (IAM) that combines login and authorization into customer-facing apps. CIAM is responsible for three key tasks:</p>\n<ul>\n<li>Enhances the user login service for consumers and provides security services by lowering the danger of unauthorized parties (a prevalent difficulty in the consumer area because of password reuse.)</li>\n<li>Provides consumers, companies, and corporate customers with personalized and unique experiences.</li>\n<li>Provides a scalable system with the ability to accommodate hundreds of millions of users.</li>\n</ul>\n<h2 id=\"iam-vs-ciam\" style=\"position:relative;\"><a href=\"#iam-vs-ciam\" aria-label=\"iam vs ciam permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>IAM vs. CIAM</h2>\n<p>IAM is considered the basis that guarantees that the appropriate people, systems, and objects have access to the correct assets at the right times and for the correct purposes. Employee access to privacy compliance was secured using conventional identity and access management (IAM). Cloud apps are secured within the stateful network.</p>\n<p>When you have to integrate individuals from outside the organization, conventional IAM begins to show flaws. Such personalized marketing systems were not designed for a firm where the bulk of contacts are made from outside the organization and are often beyond the IT team's authority.</p>\n<p>The finest CIAM software allows you to manage data protection depending on user characteristics, ensuring that authorized clients have accessibility to what they need and that others aren't allowed to go where they aren't. Structurally, the finest CIAM solutions are designed to work with a wide range of services and devices, are readily scalable, grow to millions of users, fulfill performance SLAs reliably, and satisfy industry standards.</p>\n<h2 id=\"key-benefits-of-ciam\" style=\"position:relative;\"><a href=\"#key-benefits-of-ciam\" aria-label=\"key benefits of ciam permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Key Benefits of CIAM</h2>\n<p>Customer identity management is a critical security precaution for organizations of all sizes. Violation costs may add up rapidly, and they can have a significant impact on the bottom line. According to <a rel=\"nofollow\" href=\"https://www.ibm.com/security/data-breach\">IBM Security</a>, 80 percent of hacked businesses have claimed that customer PII was exposed during the breach in privacy compliance, with a cost of $150 per client on average.</p>\n<p>CIAM solutions are simple to connect with platforms that handle typical customer functions, including account self-management, bill payment, order tracking, data protection, and refunds, lowering the dangers of bad password security.</p>\n<p>The key benefits include:</p>\n<ul>\n<li>Identity and Access Management: Advancement in technology and their exposure to various apps and systems are securely managed by IAM solutions. They look after individuals as well as other types of identities like the software (apps or programs) and hardware (such as IoT devices).</li>\n<li>Customer data protection (MFA and <a href=\"https://www.loginradius.com/blog/identity/adaptive-authentication/\">Adaptive Authentication</a>): Consumers are infamous for repeating passwords across various online sites. Advanced CIAM solutions use adaptive multi-factor authentication (MFA), which considers aspects such as position, the hour of the day, and gadgets to safeguard passwords. It promotes even greater <a href=\"https://www.loginradius.com/blog/engineering/password-security-best-practices-compliance/\">password security</a> by requiring more verification for high-risk password resets.</li>\n<li>Digital consumer interactions that are seamless and trustworthy: Many businesses have numerous online apps and interfaces, with its identification database, making it necessary for users to verify multiple times when moving between them. During the login procedure, this adds to the friction. You can create a more seamless customer experience by connecting all of your platforms with a single CIAM solution: There is a single point of entry for all applications.</li>\n<li>Users migrate quickly without disrupting their experience: <a href=\"https://www.loginradius.com/blog/identity/customer-identity-and-access-management/\">CIAM solution</a> should integrate with your current system to allow you to transfer your clients fast and without disrupting their interaction.</li>\n<li>Flexible APIs for customization: When it comes to safeguarding access to information, developers strive to provide a seamless client experience. APIs provide developers with the freedom to define authentication requirements at any point in the planning process.</li>\n<li>Support for several channels: The smartest solutions provide a variety of entrance points throughout all devices, making it as simple as possible for clients to get the tools they need to operate their company.</li>\n</ul>\n<h2 id=\"how-to-choose-the-best-ciam-platform\" style=\"position:relative;\"><a href=\"#how-to-choose-the-best-ciam-platform\" aria-label=\"how to choose the best ciam platform permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>How to Choose the Best CIAM Platform?</h2>\n<p>Many companies are turning to third-party CIAM suppliers to supply the customer identity management services they require as the range of Consumer Identity and Access Management use cases grows. The appropriate <a href=\"https://www.loginradius.com/blog/identity/perfect-ciam-platform/\">CIAM platform</a> for your company will be determined by its specific business needs. However, it's a good idea to search for a CIAM supplier that offers based hosting so you can be sure you have not just the CIAM structure but also the CIAM expertise and assets you require.</p>\n<p>With <a href=\"https://www.loginradius.com/\">LoginRadius</a>, your business is assured of a seamless customer experience. Personalize the experience of every customer that visits your page with the tools offered by us. Give your customers a delightful experience each time they visit your page with a custom login process while complying with data protection regulations.</p>\n<h2 id=\"in-conclusion\" style=\"position:relative;\"><a href=\"#in-conclusion\" aria-label=\"in conclusion permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>In Conclusion</h2>\n<p>A consumer identity and access management solution provide a comprehensive view of customer data, enabling organizations to create personalized and relevant experiences for their customers. </p>\n<p>By using a robust CIAM solution, organizations can build trust and loyalty with their customers, which is essential in today's digital age. CIAM solutions also ensure compliance with privacy regulations, protecting both the organization and the customer. </p>\n<p>In a nutshell, CIAM enables organizations to deliver an exceptional and secure personalized experience that meets the needs of their customers, ultimately leading to increased customer satisfaction and brand loyalty.</p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=how-to-make-personalized-marketing-effective-with-consumer-identity\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"book-a-demo-Consultation\"></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"July 30, 2021","updated_date":null,"description":"Personalized marketing is a promotional strategy tailored to the individual at the precise moment they require it, and there's no other communication like it. The question is, how will you fulfill that promise? You may utilize tools to acquire and aggregate information about your clients' preferences. Read on to find out what these tools are and how they benefit your business.","title":"Personalize Your Marketing With The Help Of A CIAM Platform","tags":["ciam solution","data security","cx","authentication"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/e20dd13fd0ffbc5d27f423e6595105cd/58556/personalized-marketing.webp","srcSet":"/static/e20dd13fd0ffbc5d27f423e6595105cd/61e93/personalized-marketing.webp 200w,\n/static/e20dd13fd0ffbc5d27f423e6595105cd/1f5c5/personalized-marketing.webp 400w,\n/static/e20dd13fd0ffbc5d27f423e6595105cd/58556/personalized-marketing.webp 800w,\n/static/e20dd13fd0ffbc5d27f423e6595105cd/210c1/personalized-marketing.webp 900w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Navanita Devi","github":null,"avatar":null}}}},{"node":{"excerpt":"Prerequisite You should be familiar with Python and Django, a Python framework. Overview First, we briefly introduce LoginRadius, what it is…","fields":{"slug":"/engineering/guest-post/implementing-registration-and-authentication-in-django-using-loginradius/"},"html":"<h2 id=\"prerequisite\" style=\"position:relative;\"><a href=\"#prerequisite\" aria-label=\"prerequisite permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Prerequisite</h2>\n<p>You should be familiar with Python and Django, a Python framework.</p>\n<h2 id=\"overview\" style=\"position:relative;\"><a href=\"#overview\" aria-label=\"overview permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Overview</h2>\n<p>First, we briefly introduce LoginRadius, what it is, and some benefits of using it; then, will move over to see how to implement user registration and authentication in Django using LoginRadius.</p>\n<h2 id=\"introduction\" style=\"position:relative;\"><a href=\"#introduction\" aria-label=\"introduction permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Introduction</h2>\n<p><strong>What is LoginRadius?</strong></p>\n<p>LoginRadius is a SaaS-based CIAM platform. It offers simplified, robust features to manage customer identity, privacy, and access -- allowing developers and businesses to provide a seamless and secure digital experience for their customers.</p>\n<p>The developer-friendly CIAM provides a comprehensive set of APIs for registration, authentication, identity verification, single sign-on (SSO), and more.</p>\n<p><strong>Why should we use LoginRadius?</strong></p>\n<ul>\n<li>Dynamically scales to accommodate user growth.</li>\n<li>Offers built-in security features to enhance user account security and manage user data securely.</li>\n<li>Built-in features that help achieve compliance with privacy regulations.</li>\n<li>Advanced login options like Social SSO and Passwordless Login to enhance user experience.</li>\n</ul>\n<p>LoginRadius offers many more benefits than above. You can <a href=\"https://www.loginradius.com/resources/#data-sheet\">learn more here</a>.</p>\n<h2 id=\"getting-started\" style=\"position:relative;\"><a href=\"#getting-started\" aria-label=\"getting started permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Getting started</h2>\n<p>To get started with LoginRadius, you have to first <a href=\"https://accounts.loginradius.com/auth.aspx?return_url=https://dashboard.loginradius.com/login&#x26;action=register\">create a free developer account</a>.</p>\n<p>If you already have an account, log into your <a href=\"https://accounts.loginradius.com/auth.aspx?return_url=https://dashboard.loginradius.com/login\">LoginRadius dashboard</a>\nYou will see a page like this:</p>\n<p><img src=\"https://paper-attachments.dropbox.com/s_06CCF8584138C77AD580AFE76E986CC1E8C4C360158F4A6548D0F9EAC304864E_1626849810764_Screenshot+34.webp\" alt=\"Dashboard\"></p>\n<p>When you create an account, LoginRadius sets up a free app for you. This is the app you are going to integrate with Django. Here my app name is \"tammibriggs\".</p>\n<p>Click on your app, and you will see a page like this:</p>\n<p><img src=\"https://paper-attachments.dropbox.com/s_06CCF8584138C77AD580AFE76E986CC1E8C4C360158F4A6548D0F9EAC304864E_1626849852750_Screenshot+36.webp\" alt=\"LoginRadius app\"></p>\n<p>There is one more thing LoginRadius automatically creates for you: an <a href=\"https://www.loginradius.com/developers/\">Auth Page (IDX)</a>.</p>\n<p>At this point, you know what LoginRadius is, its benefits, and how to get started with LoginRadius. Let’s see how to integrate LoginRadius with a Django application.</p>\n<h2 id=\"integrating-loginradius-with-a-django-application\" style=\"position:relative;\"><a href=\"#integrating-loginradius-with-a-django-application\" aria-label=\"integrating loginradius with a django application permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Integrating LoginRadius with a Django Application</h2>\n<p>This section covers:</p>\n<ul>\n<li>Installing dependencies.</li>\n<li>Setting up a demo application, in which you will integrate LoginRadius.</li>\n<li>Also, integrating LoginRadius with a Django demo application.</li>\n</ul>\n<blockquote>\n<p>You must have python installed, and the minimum supported version is 2.7.</p>\n</blockquote>\n<p><strong>Getting API Credentials</strong></p>\n<p>Before using any of the APIs that LoginRadius provides, you need to get your <strong>App Name</strong>, <strong>API Key</strong>, and <strong>API Secret</strong>.\nOn your LoginRadius app, navigate to <a href=\"https://dashboard.loginradius.com/configuration\">Configuration > API Credentials</a></p>\n<p><img src=\"https://paper-attachments.dropbox.com/s_06CCF8584138C77AD580AFE76E986CC1E8C4C360158F4A6548D0F9EAC304864E_1626849573473_Screenshot+38.webp\" alt=\"API credentials\"></p>\n<p>You will find your API key under the <strong>API Key and Secret</strong> subsection.</p>\n<p><img src=\"https://paper-attachments.dropbox.com/s_06CCF8584138C77AD580AFE76E986CC1E8C4C360158F4A6548D0F9EAC304864E_1626849474291_Screenshot+44_LI.webp\" alt=\"API key and secret\"></p>\n<p><strong>Whitelist your Domain</strong></p>\n<p>For security reasons, LoginRadius processes the API calls that are received from the whitelisted domains.\nLocal domains (<code>http://localhost</code> and <code>http://127.0.0.1</code>) are whitelisted by default. This means you don't have to worry about whitelisting your domain if you are running your application on Django's development server. But in a production environment, you definitely have to whitelist our domain.\nTo whitelist your domain, in your LoginRadius Dashboard, navigate to <a href=\"https://dashboard.loginradius.com/configuration\">Configuration > Whitelist Your Domain</a> and add your domain name.</p>\n<p><img src=\"https://paper-attachments.dropbox.com/s_06CCF8584138C77AD580AFE76E986CC1E8C4C360158F4A6548D0F9EAC304864E_1626849403941_Screenshot+41.webp\" alt=\"Whitelist your domain\"></p>\n<p><strong>Installation of Dependencies</strong></p>\n<p>You need to install the LoginRadius Python SDK. It provides functionalities that allow Python programs to communicate with LoginRadius APIs.\nOpen VS Code, PyCharm, or any other editor you use in general.\nIn the terminal, type:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"plaintext\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">$ pip install LoginRadius-v2 requests cryptography pbkdf2</span></code></pre>\n<p>These are the dependencies you need to integrate LoginRadius into your Django application.</p>\n<p><strong>Setting up Django</strong></p>\n<ol>\n<li>Install Django.</li>\n<li>Create a new project.</li>\n<li>Create an app inside the project.</li>\n<li>Migrate your project.</li>\n<li>Create a <code>urls.py</code> file in your app.</li>\n</ol>\n<p>You can accomplish all this with the following commands in your terminal:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"plaintext\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">$ python -m pip install django</span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\">$ django-admin startproject radiusAuth</span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\">$ cd radiusAuth</span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\">$ python manage.py startapp radiusApp</span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\">$ python manage.py migrate</span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\">$ cd radiusApp</span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\">$ type nul &gt; urls.py</span></code></pre>\n<p>Here, the project name is <strong>radiusAuth</strong> and the app <strong>radiusApp</strong> but you can use any name you want.\nYou now have a <strong>radiusAuth</strong> project and <strong>radiusApp</strong> app setup.</p>\n<p><strong>Configure Project</strong></p>\n<p>You need to tell Django about the app you created and the location of the app's <code>urls.py</code> file.\nFirst, let Django know the location of your app.\nIn your <strong>radiusAuth</strong> project navigate to <em>radiusAuth/settings.py</em>, modify the <code>INSTALLED_APPS</code>:</p>\n<p><code>radiusAuth/settings.py</code></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"python\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\">INSTALLED_APPS = [</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk8\">&quot;django.contrib.admin&quot;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk8\">&quot;django.contrib.auth&quot;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk8\">&quot;django.contrib.contenttypes&quot;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk8\">&quot;django.contrib.sessions&quot;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk8\">&quot;django.contrib.messages&quot;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk8\">&quot;django.contrib.staticfiles&quot;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk8\">&quot;radiusApp&quot;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">]</span></span></code></pre>\n<p>Once you have added it, go over to the <code>urls.py</code> file in the same directory, modify the <code>urlpatterns</code> and include the apps url location.</p>\n<p><code>radiusAuth/urls.py</code></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"python\" data-index=\"3\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk15\">from</span><span class=\"mtk1\"> django.contrib </span><span class=\"mtk15\">import</span><span class=\"mtk1\"> admin</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk15\">from</span><span class=\"mtk1\"> django.urls </span><span class=\"mtk15\">import</span><span class=\"mtk1\"> path, include</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">urlpatterns = [</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    path(</span><span class=\"mtk8\">&#39;admin/&#39;</span><span class=\"mtk1\">, admin.site.urls),</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    path(</span><span class=\"mtk8\">&#39;&#39;</span><span class=\"mtk1\">, include(</span><span class=\"mtk8\">&#39;radiusApp.urls&#39;</span><span class=\"mtk1\">))</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">]</span></span></code></pre>\n<h2 id=\"user-registration-and-authentication\" style=\"position:relative;\"><a href=\"#user-registration-and-authentication\" aria-label=\"user registration and authentication permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>User Registration and Authentication</h2>\n<p>Remember, we said that there is a webpage LoginRadius automatically created for you: an <a href=\"https://www.loginradius.com/developers/\">Auth Page (IDX)</a>, which already has registration and authentication implemented. You will utilize this web page to meet your registration and authentication needs.\nHow would you do that?</p>\n<p>You can access your registration and login page with the following URLs.</p>\n<p>Registration Page URL:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"plaintext\" data-index=\"4\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">https://{APP_NAME}.hub.loginradius.com/auth.aspx?action=register&return_url={RETURN_URL}</span></code></pre>\n<p>Login Page URL:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"plaintext\" data-index=\"5\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">https://{APP_NAME}.hub.loginradius.com/auth.aspx?action=login&return_url={RETURN_URL}</span></code></pre>\n<ul>\n<li>The APP_NAME parameter is your LoginRadius app name, which we mentioned in the <a href=\"#\">Get API Credentials</a> section.</li>\n<li>The RETURN_URL parameter refers to the URL where the user should be redirected to upon successful authentication.</li>\n</ul>\n<p>So, what you will do now is to create links or buttons that users can click to access these URLs.\nFirst, create a view that will be responsible for displaying your registration and login page.\nEdit the <code>views.py</code> file of the <strong>radiusApp</strong> application and add the following code:</p>\n<p><code>radiusApp/views.py</code></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"python\" data-index=\"6\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk15\">from</span><span class=\"mtk1\"> django.shortcuts </span><span class=\"mtk15\">import</span><span class=\"mtk1\"> render</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk4\">def</span><span class=\"mtk1\"> </span><span class=\"mtk11\">register_n_login</span><span class=\"mtk1\">(</span><span class=\"mtk12\">request</span><span class=\"mtk1\">):</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk15\">return</span><span class=\"mtk1\"> render(request, </span><span class=\"mtk8\">&#39;index.html&#39;</span><span class=\"mtk1\">)</span></span></code></pre>\n<p>All this view does is render an HTML page as a response. Now, you need to add the URL pattern for this view.</p>\n<p>In the <code>urls.py</code> file of your <strong>radiusApp</strong> application, add the following code:</p>\n<p><code>radiusApp/urls.py</code></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"python\" data-index=\"7\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk15\">from</span><span class=\"mtk1\"> django.urls </span><span class=\"mtk15\">import</span><span class=\"mtk1\"> path</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk15\">from</span><span class=\"mtk1\"> . </span><span class=\"mtk15\">import</span><span class=\"mtk1\"> views</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">urlpatterns = [</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    path(</span><span class=\"mtk8\">&#39;&#39;</span><span class=\"mtk1\">, views.register_n_login, </span><span class=\"mtk12\">name</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;access&quot;</span><span class=\"mtk1\">),</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">]</span></span></code></pre>\n<p>The <code>register_n_login</code> view can now be accessed by a URL. It's time to create a template for your view. But before you do that, let me introduce some basic styling you will use in your application.</p>\n<p>Create a <strong>static</strong> directory and a <code>style.css</code> file in your app directory.\nOpen your terminal and type the following command:</p>\n<p><code>radiusAuth/radiusApp</code></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"plaintext\" data-index=\"8\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">$ mkdir static</span>\n<span class=\"grvsc-line\">$ cd static</span>\n<span class=\"grvsc-line\">$ type nul &gt; style.css</span></code></pre>\n<p>Open the <code>style.css</code> file and the following CSS styles:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"css\" data-index=\"9\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk4\">*</span><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">margin</span><span class=\"mtk1\">: </span><span class=\"mtk7\">0</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">border</span><span class=\"mtk1\">: </span><span class=\"mtk7\">0</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk6\">body</span><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">background-color</span><span class=\"mtk1\">: </span><span class=\"mtk11\">hsl</span><span class=\"mtk1\">(</span><span class=\"mtk7\">210</span><span class=\"mtk1\">, </span><span class=\"mtk7\">15%</span><span class=\"mtk1\">, </span><span class=\"mtk7\">95%</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk6\">.wrapper</span><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">width</span><span class=\"mtk1\">: </span><span class=\"mtk7\">90%</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">height</span><span class=\"mtk1\">: </span><span class=\"mtk7\">100vh</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">margin</span><span class=\"mtk1\">: </span><span class=\"mtk7\">0</span><span class=\"mtk1\"> </span><span class=\"mtk8\">auto</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">display</span><span class=\"mtk1\">: </span><span class=\"mtk8\">flex</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">align-items</span><span class=\"mtk1\">: </span><span class=\"mtk8\">center</span><span class=\"mtk1\">; </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">flex-direction</span><span class=\"mtk1\">: </span><span class=\"mtk8\">column</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">justify-content</span><span class=\"mtk1\">: </span><span class=\"mtk8\">center</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk6\">.choice</span><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">text-align</span><span class=\"mtk1\">: </span><span class=\"mtk8\">center</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">line-height</span><span class=\"mtk1\">: </span><span class=\"mtk7\">30px</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk6\">.choice</span><span class=\"mtk1\"> </span><span class=\"mtk6\">span</span><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">color</span><span class=\"mtk1\">: </span><span class=\"mtk11\">hsl</span><span class=\"mtk1\">(</span><span class=\"mtk7\">207</span><span class=\"mtk1\">, </span><span class=\"mtk7\">37%</span><span class=\"mtk1\">, </span><span class=\"mtk7\">76%</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk6\">.choice</span><span class=\"mtk1\"> </span><span class=\"mtk6\">span:nth-child</span><span class=\"mtk1\">(</span><span class=\"mtk7\">1</span><span class=\"mtk1\">){</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">font-size</span><span class=\"mtk1\">: </span><span class=\"mtk7\">1.3rem</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">color</span><span class=\"mtk1\">: </span><span class=\"mtk11\">hsl</span><span class=\"mtk1\">(</span><span class=\"mtk7\">210</span><span class=\"mtk1\">, </span><span class=\"mtk7\">7%</span><span class=\"mtk1\">, </span><span class=\"mtk7\">55%</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk6\">.access</span><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">width</span><span class=\"mtk1\">: </span><span class=\"mtk7\">100%</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">max-width</span><span class=\"mtk1\">: </span><span class=\"mtk7\">400px</span><span class=\"mtk1\">; </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">height</span><span class=\"mtk1\">:</span><span class=\"mtk7\">150px</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">display</span><span class=\"mtk1\">: </span><span class=\"mtk8\">flex</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">justify-content</span><span class=\"mtk1\">: </span><span class=\"mtk8\">space-evenly</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">flex-direction</span><span class=\"mtk1\">: </span><span class=\"mtk8\">column</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">align-items</span><span class=\"mtk1\">: </span><span class=\"mtk8\">center</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">background-color</span><span class=\"mtk1\">: </span><span class=\"mtk8\">white</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">margin-bottom</span><span class=\"mtk1\">: </span><span class=\"mtk7\">20px</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">font-size</span><span class=\"mtk1\">: </span><span class=\"mtk7\">1.2rem</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk6\">.access</span><span class=\"mtk1\"> </span><span class=\"mtk6\">button</span><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">width</span><span class=\"mtk1\">: </span><span class=\"mtk7\">90%</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">padding</span><span class=\"mtk1\">: </span><span class=\"mtk7\">0.7rem</span><span class=\"mtk1\"> </span><span class=\"mtk7\">0.4rem</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">background-color</span><span class=\"mtk1\">: </span><span class=\"mtk11\">hsl</span><span class=\"mtk1\">(</span><span class=\"mtk7\">207</span><span class=\"mtk1\">, </span><span class=\"mtk7\">73%</span><span class=\"mtk1\">, </span><span class=\"mtk7\">30%</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">color</span><span class=\"mtk1\">: </span><span class=\"mtk8\">white</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk6\">.profile</span><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">width</span><span class=\"mtk1\">:</span><span class=\"mtk7\">100%</span><span class=\"mtk1\">; </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">max-width</span><span class=\"mtk1\">: </span><span class=\"mtk7\">400px</span><span class=\"mtk1\">; </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">min-height</span><span class=\"mtk1\">: </span><span class=\"mtk7\">300px</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">background-color</span><span class=\"mtk1\">: </span><span class=\"mtk8\">white</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">display</span><span class=\"mtk1\">: </span><span class=\"mtk8\">flex</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">flex-direction</span><span class=\"mtk1\">: </span><span class=\"mtk8\">column</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">justify-content</span><span class=\"mtk1\">: </span><span class=\"mtk8\">space-between</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk6\">.profile__head</span><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">width</span><span class=\"mtk1\">: </span><span class=\"mtk8\">inherit</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">flex</span><span class=\"mtk1\">: </span><span class=\"mtk7\">0.3</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">background-color</span><span class=\"mtk1\">: </span><span class=\"mtk11\">hsl</span><span class=\"mtk1\">(</span><span class=\"mtk7\">207</span><span class=\"mtk1\">, </span><span class=\"mtk7\">73%</span><span class=\"mtk1\">, </span><span class=\"mtk7\">30%</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">display</span><span class=\"mtk1\">:</span><span class=\"mtk8\">flex</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">align-items</span><span class=\"mtk1\">:</span><span class=\"mtk8\">center</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">justify-content</span><span class=\"mtk1\">: </span><span class=\"mtk8\">center</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk6\">.profile__head</span><span class=\"mtk1\"> </span><span class=\"mtk6\">h4</span><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">font-size</span><span class=\"mtk1\">: </span><span class=\"mtk7\">36px</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">font-weight</span><span class=\"mtk1\">: </span><span class=\"mtk7\">400px</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">color</span><span class=\"mtk1\">: </span><span class=\"mtk8\">white</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk6\">.profile__details</span><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">width</span><span class=\"mtk1\">: </span><span class=\"mtk7\">90%</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">margin</span><span class=\"mtk1\">: </span><span class=\"mtk7\">0</span><span class=\"mtk1\"> </span><span class=\"mtk8\">auto</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">line-height</span><span class=\"mtk1\">: </span><span class=\"mtk7\">35px</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">flex</span><span class=\"mtk1\">: </span><span class=\"mtk7\">0.5</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk6\">.profile__details</span><span class=\"mtk1\"> </span><span class=\"mtk6\">span</span><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">font-size</span><span class=\"mtk1\">: </span><span class=\"mtk7\">1.2rem</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk6\">.label</span><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">color</span><span class=\"mtk1\">: </span><span class=\"mtk11\">hsl</span><span class=\"mtk1\">(</span><span class=\"mtk7\">210</span><span class=\"mtk1\">, </span><span class=\"mtk7\">7%</span><span class=\"mtk1\">, </span><span class=\"mtk7\">55%</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span></code></pre>\n<p>Now, create the template for your <code>register_n_login</code> view.</p>\n<p>Create a <strong>templates</strong> directory and a <code>index.html</code> file in your app directory.</p>\n<p>Open your terminal and type the following command:</p>\n<p><code>radiusAuth/radiusApp</code></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"plaintext\" data-index=\"10\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">$ mkdir templates</span>\n<span class=\"grvsc-line\">$ cd templates</span>\n<span class=\"grvsc-line\">$ type nul &gt; index.html</span></code></pre>\n<p>Open the <code>index.html</code> file and add the following HTML</p>\n<p><code>templates/index.html</code></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"html\" data-index=\"11\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\">{% </span><span class=\"mtk12\">load</span><span class=\"mtk1\"> </span><span class=\"mtk12\">static</span><span class=\"mtk1\"> %}</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> &lt;!</span><span class=\"mtk12\">DOCTYPE</span><span class=\"mtk1\"> </span><span class=\"mtk12\">html</span><span class=\"mtk1\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">html</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">     </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">head</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">         </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">meta</span><span class=\"mtk1\"> </span><span class=\"mtk12\">charset</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;utf-8&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">         </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">meta</span><span class=\"mtk1\"> </span><span class=\"mtk12\">name</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;viewport&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">content</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;width=device-width, initial-scale=1.0&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">         </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">title</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">Registration and Login page</span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">title</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">         </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">link</span><span class=\"mtk1\"> </span><span class=\"mtk12\">rel</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;stylesheet&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">href</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;{% static &#39;style.css&#39; %}&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">     </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">head</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">     </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">body</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">         </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">div</span><span class=\"mtk1\"> </span><span class=\"mtk12\">class</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;wrapper&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">             </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">div</span><span class=\"mtk1\"> </span><span class=\"mtk12\">class</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;access&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                 </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">Open an account with us</span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                 </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">button</span><span class=\"mtk1\"> </span><span class=\"mtk12\">onclick</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;window.location.href=&#39;https://{APP_NAME}.hub.loginradius.com/auth.aspx?action=register</span><span class=\"mtk14\">&</span><span class=\"mtk8\">return_url=http://127.0.0.1:8000/&#39;;&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                     Register</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                 </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">button</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">             </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">div</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">             </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">div</span><span class=\"mtk1\"> </span><span class=\"mtk12\">class</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;choice&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                 </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">OR</span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;&lt;</span><span class=\"mtk4\">br</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                 </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">If you already have account</span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">             </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">div</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">             </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">div</span><span class=\"mtk1\"> </span><span class=\"mtk12\">class</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;access&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                 </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">Log into your account</span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                 </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">button</span><span class=\"mtk1\"> </span><span class=\"mtk12\">onclick</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;window.location.href=&#39;https://{APP_NAME}.hub.loginradius.com/auth.aspx?action=login</span><span class=\"mtk14\">&</span><span class=\"mtk8\">return_url=http://127.0.0.1:8000/profile/&#39;;&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                     Login</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                 </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">button</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">             </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">div</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">         </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">div</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">     </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">body</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">html</span><span class=\"mtk17\">&gt;</span></span></code></pre>\n<p>We used an <code>onclick</code> event on both the register and login buttons, which when clicked changes the window's location to the <a href=\"https://www.loginradius.com/developers/\">Auth Page (IDX)</a> register and login page respectively.</p>\n<p><strong>NOTE:</strong> Don’t forget to replace the {APP_NAME} placeholder with your LoginRadius app name.</p>\n<p>Also, in the register and login link, we replaced the {RETURN_URL} parameter with <code>http://127.0.0.1:8000/profile/</code>, which is the user profile page you are going to create shortly.</p>\n<p>Run the development server and open <code>http://127.0.0.1:8000/</code>, you will see a page like this:</p>\n<p><img src=\"https://paper-attachments.dropbox.com/s_06CCF8584138C77AD580AFE76E986CC1E8C4C360158F4A6548D0F9EAC304864E_1626849064162_Screenshot+48.webp\" alt=\"Register and Login page\"></p>\n<p>Now, when you click the register or login button, you will see a page like this:</p>\n<p><img src=\"https://paper-attachments.dropbox.com/s_06CCF8584138C77AD580AFE76E986CC1E8C4C360158F4A6548D0F9EAC304864E_1626849029873_Screenshot+46.webp\" alt=\"Auth page (IDX)\"></p>\n<blockquote>\n<p>When LoginRadius successfully authenticates a user, it attaches an access token in the query string as a token parameter to the REDIRECT_URL.</p>\n</blockquote>\n<h2 id=\"retrieve-user-data-using-access-token\" style=\"position:relative;\"><a href=\"#retrieve-user-data-using-access-token\" aria-label=\"retrieve user data using access token permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Retrieve User Data using Access Token</h2>\n<p>In this section, you are going to retrieve the authenticated user data using access token. But first you need to initialize LoingRadius SDK with your API<em>KEY and API</em>SECRET.</p>\n<p><strong>Intializing LoginRadius SDK</strong></p>\n<p>Create a new <code>config.py</code> file in your <strong>radiusApp</strong> directory.</p>\n<p>Open your terminal and type this command:</p>\n<p><code>radiusAuth/radiusApp</code></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"plaintext\" data-index=\"12\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">$ type nul &gt; config.py</span></code></pre>\n<p>Open the <code>config.py</code> file and add the following lines of code:</p>\n<p><code>radiusApp/config.py</code></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"python\" data-index=\"13\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk15\">from</span><span class=\"mtk1\"> LoginRadius </span><span class=\"mtk15\">import</span><span class=\"mtk1\"> LoginRadius </span><span class=\"mtk15\">as</span><span class=\"mtk1\"> LR</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">LR.API_KEY = </span><span class=\"mtk8\">&quot;API_KEY&quot;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">LR.API_SECRET = </span><span class=\"mtk8\">&quot;API_SECRET&quot;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">loginradius = LR()</span></span></code></pre>\n<p>Replace API<em>KEY and API</em>SECRET with your respective LoginRadius API credentials.</p>\n<p>Now, create the view that will be responsible for retrieving user data.</p>\n<p>Open the <code>views.py</code> file in your <strong>radiusApp</strong> directory and add the following lines of code:</p>\n<p><code>radiusApp/views.py</code></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"python\" data-index=\"14\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk15\">from</span><span class=\"mtk1\"> django.shortcuts </span><span class=\"mtk15\">import</span><span class=\"mtk1\"> render, redirect</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk15\">from</span><span class=\"mtk1\"> django.http.response </span><span class=\"mtk15\">import</span><span class=\"mtk1\"> HttpResponse</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk15\">from</span><span class=\"mtk1\"> .config </span><span class=\"mtk15\">import</span><span class=\"mtk1\"> loginradius</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk4\">def</span><span class=\"mtk1\"> </span><span class=\"mtk11\">register_n_login</span><span class=\"mtk1\">(</span><span class=\"mtk12\">request</span><span class=\"mtk1\">):</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk3\">#...</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk4\">def</span><span class=\"mtk1\"> </span><span class=\"mtk11\">profile</span><span class=\"mtk1\">(</span><span class=\"mtk12\">request</span><span class=\"mtk1\">):</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk15\">if</span><span class=\"mtk1\"> request.GET.get(</span><span class=\"mtk8\">&#39;token&#39;</span><span class=\"mtk1\">):    </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk15\">try</span><span class=\"mtk1\">:</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">            user_data = loginradius.authentication.get_profile_by_access_token(request.GET.get(</span><span class=\"mtk8\">&#39;token&#39;</span><span class=\"mtk1\">))</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk15\">except</span><span class=\"mtk1\"> </span><span class=\"mtk10\">Exception</span><span class=\"mtk1\"> </span><span class=\"mtk15\">as</span><span class=\"mtk1\"> inst:</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">            </span><span class=\"mtk15\">return</span><span class=\"mtk1\"> HttpResponse(inst)</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk15\">else</span><span class=\"mtk1\">:</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk15\">return</span><span class=\"mtk1\"> redirect(</span><span class=\"mtk8\">&#39;access&#39;</span><span class=\"mtk1\">)</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk15\">return</span><span class=\"mtk1\"> render(request, </span><span class=\"mtk8\">&#39;profile.html&#39;</span><span class=\"mtk1\">, {</span><span class=\"mtk8\">&#39;user_data&#39;</span><span class=\"mtk1\">:user_data})</span></span></code></pre>\n<p>In this code snippet, we imported the initialized LoginRadius class from the <code>config.py</code> file and also imported <code>redirect</code> and <code>HttpResponse</code> from there respective modules.</p>\n<p>We also introduced a new function called <code>profile</code>. In this function we did the following:</p>\n<ul>\n<li>We first checked if there is a token parameter attached to the request. If true,</li>\n<li>We created a <code>try</code> and <code>except</code> block. In the <code>try</code> block we used the <code>authentication.get_profile_by_access_token</code> method to retrieve the user data from the access token and assigned it to a variable called <code>user_data</code> while in the <code>except</code> block we returned a HttpResponse of the error that occurred if the <code>try</code> block fails.</li>\n<li>If the <code>try</code> block successfully retrieved the user's data, we rendered a <code>profile.html</code> page, and also attached the <code>user_data</code> variable to the response.</li>\n<li>Else, if there is no token parameter attached to the request, we redirect the user back to the registration and login page.</li>\n</ul>\n<p>Now, add the URL pattern and also create a template for your views.</p>\n<p>Modify the <code>urls.py</code> file in the <strong>radiusApp</strong> directory.</p>\n<p><code>radiusApp/urls.py</code></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"python\" data-index=\"15\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\">urlpatterns = [</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk3\">#...</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">     path(</span><span class=\"mtk8\">&#39;profile/&#39;</span><span class=\"mtk1\">, views.profile, </span><span class=\"mtk12\">name</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;profile&quot;</span><span class=\"mtk1\">)</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> ]</span></span></code></pre>\n<p>Head over to the <strong>templates</strong> directory in the <strong>radiusApp</strong> directory and create a <code>profile.html</code> file.</p>\n<p>In the termainal type:</p>\n<p><code>radiusApp/templates</code></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"plaintext\" data-index=\"16\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">$ type nul &gt; profile.html</span></code></pre>\n<p>Open your <code>profile.html</code> file and add the following HTML code:</p>\n<p><code>templates/profile.html</code></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"html\" data-index=\"17\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\">{% </span><span class=\"mtk12\">load</span><span class=\"mtk1\"> </span><span class=\"mtk12\">static</span><span class=\"mtk1\"> %}</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> &lt;!</span><span class=\"mtk12\">DOCTYPE</span><span class=\"mtk1\"> </span><span class=\"mtk12\">html</span><span class=\"mtk1\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">html</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">     </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">head</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">         </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">meta</span><span class=\"mtk1\"> </span><span class=\"mtk12\">charset</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;utf-8&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">         </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">meta</span><span class=\"mtk1\"> </span><span class=\"mtk12\">name</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;viewport&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">content</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;width=device-width, initial-scale=1.0&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">         </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">link</span><span class=\"mtk1\"> </span><span class=\"mtk12\">rel</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;stylesheet&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">href</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;{% static &#39;style.css&#39;%}&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">         </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">title</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">Profile</span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">title</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">     </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">head</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">     </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">body</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">         </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">div</span><span class=\"mtk1\"> </span><span class=\"mtk12\">class</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;wrapper&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">             </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">div</span><span class=\"mtk1\"> </span><span class=\"mtk12\">class</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;profile&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                 </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">div</span><span class=\"mtk1\"> </span><span class=\"mtk12\">class</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;profile__head&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                     </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">h4</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">profile details</span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">h4</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                 </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">div</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                 </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">div</span><span class=\"mtk1\"> </span><span class=\"mtk12\">class</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;profile__details&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                     </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                     </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">span</span><span class=\"mtk1\"> </span><span class=\"mtk12\">class</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;label&quot;</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">Provider: </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\"> </span><span class=\"mtk4\">{</span><span class=\"mtk1\">{user_data.</span><span class=\"mtk12\">Provider</span><span class=\"mtk1\">}</span><span class=\"mtk4\">}</span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">br</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                     </span><span class=\"mtk4\">{</span><span class=\"mtk1\">% </span><span class=\"mtk12\">for</span><span class=\"mtk1\"> </span><span class=\"mtk12\">i</span><span class=\"mtk1\"> </span><span class=\"mtk4\">in</span><span class=\"mtk1\"> </span><span class=\"mtk12\">user_data</span><span class=\"mtk1\">.</span><span class=\"mtk12\">Email</span><span class=\"mtk1\"> %</span><span class=\"mtk4\">}</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                         </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">span</span><span class=\"mtk1\"> </span><span class=\"mtk12\">class</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;label&quot;</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">Email: </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;</span><span class=\"mtk4\">{</span><span class=\"mtk1\">{i.</span><span class=\"mtk12\">Value</span><span class=\"mtk1\">}</span><span class=\"mtk4\">}</span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">br</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                     </span><span class=\"mtk4\">{</span><span class=\"mtk1\">% </span><span class=\"mtk12\">endfor</span><span class=\"mtk1\"> %</span><span class=\"mtk4\">}</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                     </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">span</span><span class=\"mtk1\"> </span><span class=\"mtk12\">class</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;label&quot;</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">Number of login:</span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\"> </span><span class=\"mtk4\">{</span><span class=\"mtk1\">{user_data.</span><span class=\"mtk12\">NoOfLogins</span><span class=\"mtk1\">}</span><span class=\"mtk4\">}</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                     </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                 </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">div</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">             </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">div</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">            </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">         </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">div</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">     </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">body</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\"> </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">html</span><span class=\"mtk17\">&gt;</span></span></code></pre>\n<p>Here we displayed the Provider, Email and NoOfLogins from the <code>user_data</code>. These are just some of the data present in the <code>user_data</code>.</p>\n<p>Now, if you run your development server, and then register and login a user, you should see a page like this:</p>\n<p><img src=\"https://paper-attachments.dropbox.com/s_06CCF8584138C77AD580AFE76E986CC1E8C4C360158F4A6548D0F9EAC304864E_1626848979749_Screenshot+51.webp\" alt=\"Profile page\"></p>\n<p>To see the entire data present in the <code>user_data</code>, you can do something like this in your <code>profile.html</code>, file:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"html\" data-index=\"18\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\">{% </span><span class=\"mtk12\">load</span><span class=\"mtk1\"> </span><span class=\"mtk12\">static</span><span class=\"mtk1\"> %}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">&lt;!</span><span class=\"mtk12\">DOCTYPE</span><span class=\"mtk1\"> </span><span class=\"mtk12\">html</span><span class=\"mtk1\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">html</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">head</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">meta</span><span class=\"mtk1\"> </span><span class=\"mtk12\">charset</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;utf-8&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">meta</span><span class=\"mtk1\"> </span><span class=\"mtk12\">name</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;viewport&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">content</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;width=device-width, initial-scale=1.0&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">link</span><span class=\"mtk1\"> </span><span class=\"mtk12\">rel</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;stylesheet&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">href</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;{% static &#39;style.css&#39;%}&quot;</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">title</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">Profile</span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">title</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">head</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">body</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk4\">{</span><span class=\"mtk1\">{</span><span class=\"mtk12\">user_data</span><span class=\"mtk1\">}</span><span class=\"mtk4\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">body</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">html</span><span class=\"mtk17\">&gt;</span></span></code></pre>\n<h2 id=\"conclusion\" style=\"position:relative;\"><a href=\"#conclusion\" aria-label=\"conclusion permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Conclusion</h2>\n<p>In this tutorial, we discussed how to use LoginRadius for registration and authentication in Django. We started by introducing LoginRadius, what it is, its benefits, and how to get started with it. Then, we illustrated building a demo application with Django and implemented registration and authentication using LoginRadius.</p>\n<p><strong>GitHub repo:</strong> <a href=\"https://github.com/Tammibriggs/radiusAuth\">radiusAuth</a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n  .dark-default-dark {\n    background-color: #1E1E1E;\n    color: #D4D4D4;\n  }\n  .dark-default-dark .mtk1 { color: #D4D4D4; }\n  .dark-default-dark .mtk8 { color: #CE9178; }\n  .dark-default-dark .mtk15 { color: #C586C0; }\n  .dark-default-dark .mtk4 { color: #569CD6; }\n  .dark-default-dark .mtk11 { color: #DCDCAA; }\n  .dark-default-dark .mtk12 { color: #9CDCFE; }\n  .dark-default-dark .mtk7 { color: #B5CEA8; }\n  .dark-default-dark .mtk6 { color: #D7BA7D; }\n  .dark-default-dark .mtk17 { color: #808080; }\n  .dark-default-dark .mtk14 { color: #F44747; }\n  .dark-default-dark .mtk3 { color: #6A9955; }\n  .dark-default-dark .mtk10 { color: #4EC9B0; }\n</style>","frontmatter":{"date":"July 30, 2021","updated_date":null,"description":"In this tutorial, you will learn how to implement user registration and authentication in Django using LoginRadius.","title":"How to Implement Registration and Authentication in Django?","tags":["Django","Authentication","User Registration"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.3333333333333333,"src":"/static/daa847118d28c3abd060b8eb7a833f23/58556/coverImage.webp","srcSet":"/static/daa847118d28c3abd060b8eb7a833f23/61e93/coverImage.webp 200w,\n/static/daa847118d28c3abd060b8eb7a833f23/1f5c5/coverImage.webp 400w,\n/static/daa847118d28c3abd060b8eb7a833f23/58556/coverImage.webp 800w,\n/static/daa847118d28c3abd060b8eb7a833f23/99238/coverImage.webp 1200w,\n/static/daa847118d28c3abd060b8eb7a833f23/7c22d/coverImage.webp 1600w,\n/static/daa847118d28c3abd060b8eb7a833f23/9d54b/coverImage.webp 4032w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Taminoturoko Briggs","github":"tammibriggs","avatar":null}}}},{"node":{"excerpt":"You may have come across the term “Token” multiple times. However, only a few people know its use and benefits.  A token plays a crucial…","fields":{"slug":"/identity/pros-cons-token-authentication/"},"html":"<p>You may have come across the term “Token” multiple times. However, only a few people know its use and benefits. </p>\n<p>A token plays a crucial role in enhancing the overall security mechanism of an organization that helps to deliver flawless and secure authentication and authorization on their website or application. </p>\n<p>This post will help you better understand what a token is, what are its pros and cons and will help you decide whether you need to invoke the potential of tokens for your business or not. </p>\n<h2 id=\"what-is-a-token\" style=\"position:relative;\"><a href=\"#what-is-a-token\" aria-label=\"what is a token permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What is a Token?</h2>\n<p>A token can be defined as a digitally encoded signature used to authenticate and authorize a user to access specific resources on a network.</p>\n<p>A token is always generated in the form of an OTP (One-Time Password), which depicts that it could only be used once and is generated randomly for every transaction. </p>\n<p><strong><em>The token-based authentication allows users to verify their unique identity, and in return, they receive a unique token that provides access to certain resources for a particular time frame.</em></strong> </p>\n<p>Apart from this, users can easily access the website or network for which the token is issued, and need not enter the credentials again and again until the token expires. </p>\n<p>Tokens are widely used for regular online transactions for enhancing overall security and accuracy.</p>\n<h2 id=\"how-a-token-works\" style=\"position:relative;\"><a href=\"#how-a-token-works\" aria-label=\"how a token works permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>How a Token Works?</h2>\n<p>Whenever you perform a transaction online, you need to enter the credentials. Once you provide the credentials, the system then sends an OTP to your mobile device through a text message or an email. </p>\n<p>A token generator generates these random OTPs, and the user is authenticated once the same is presented to the website or application. </p>\n<p>A random string to the user is sent, which is stored in persistent storage like web storage, and with every request by the user, the string is sent to authenticate the user multiple times during the token lifespan automatically. </p>\n<p>The lifespan of a token is small. Also, a DB table containing all the session tokens is mapped to a user-id is involved and contains other details, including expiry, device-type, etc. </p>\n<h2 id=\"what-is-jwt-json-web-token\" style=\"position:relative;\"><a href=\"#what-is-jwt-json-web-token\" aria-label=\"what is jwt json web token permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What is JWT (JSON Web Token)?</h2>\n<p>JWT (JSON Web Token) is used to provide a standard way for two parties to communicate securely. JWT is commonly used for managing authorization.</p>\n<p>There exists an open industry standard called RFC-7519, which defines how JWT should be structured and how to use it for exchanging information (called “claims”) in the form of JSON objects. This information can be verified and trusted as its digitally signed.</p>\n<p><a href=\"https://www.loginradius.com/blog/engineering/jwt/\">JWT (JSON Web Token)</a> is a popular method of SSO, which is widely used by B2C applications, and through this system, you can allow your consumers to log in to an application that supports JWT.</p>\n<p>LoginRadius acts as an Identity Provider; it means LoginRadius can authorize a third-party application that will act as a Service Provider. </p>\n<h2 id=\"pros-of-using-tokens\" style=\"position:relative;\"><a href=\"#pros-of-using-tokens\" aria-label=\"pros of using tokens permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Pros of Using Tokens</h2>\n<h3 id=\"1-token-based-authentication-is-more-scalable-and-efficient\" style=\"position:relative;\"><a href=\"#1-token-based-authentication-is-more-scalable-and-efficient\" aria-label=\"1 token based authentication is more scalable and efficient permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. <strong>Token-based Authentication is more Scalable and Efficient</strong></h3>\n<p>As we know that tokens are required to be stored on the user’s end, they offer a scalable solution. </p>\n<p>Moreover, the server just needs to create and verify the tokens along with the information, which means that maintaining more users on a website or application at once is possible without any hassle. </p>\n<h3 id=\"2-flexibility-and-performance\" style=\"position:relative;\"><a href=\"#2-flexibility-and-performance\" aria-label=\"2 flexibility and performance permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>2. Flexibility and Performance</strong></h3>\n<p>Flexibility and enhanced overall performance are other important aspects when it comes to token-based authentication as they can be used across multiple servers and they can offer authentication for diverse websites and applications at once. </p>\n<p>This helps in encouraging more collaboration opportunities between enterprises and platforms for a flawless experience. </p>\n<h3 id=\"3-tokens-offer-robust-security\" style=\"position:relative;\"><a href=\"#3-tokens-offer-robust-security\" aria-label=\"3 tokens offer robust security permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>3. Tokens Offer Robust Security</strong></h3>\n<p>Since tokens like JWT are stateless, only a secret key can validate it when received at a server-side application, which was used to create it. </p>\n<p>Hence they’re considered the best and the most secure way of offering authentication. </p>\n<h3 id=\"span-stylecolor-ff4500tokens-act-as-a-storage-for-the-users-credentials-and-when-the-token-travels-between-the-server-or-the-web-browser-the-stored-credentials-are-never-compromised-span\" style=\"position:relative;\"><a href=\"#span-stylecolor-ff4500tokens-act-as-a-storage-for-the-users-credentials-and-when-the-token-travels-between-the-server-or-the-web-browser-the-stored-credentials-are-never-compromised-span\" aria-label=\"span stylecolor ff4500tokens act as a storage for the users credentials and when the token travels between the server or the web browser the stored credentials are never compromised span permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><span style=\"color: #FF4500\">Tokens act as a storage for the user’s credentials and when the token travels between the server, or the web browser, the stored credentials are never compromised. </span></h3>\n<h2 id=\"cons-of-using-tokens\" style=\"position:relative;\"><a href=\"#cons-of-using-tokens\" aria-label=\"cons of using tokens permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Cons of Using Tokens</h2>\n<h3 id=\"1-compromised-secret-key\" style=\"position:relative;\"><a href=\"#1-compromised-secret-key\" aria-label=\"1 compromised secret key permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. <strong>Compromised Secret Key</strong></h3>\n<p>One of the major cons of relying on tokens is that it relies on just one key. Yes, JWT uses only one key, which if handled poorly by a developer/administrator, would lead to severe consequences that can compromise sensitive information. </p>\n<p>It’s essential for businesses to seek professional help coupled with robust security mechanisms while planning to add JWT to their authentication mechanism to ensure the highest level of security. </p>\n<h3 id=\"2-data-overhead\" style=\"position:relative;\"><a href=\"#2-data-overhead\" aria-label=\"2 data overhead permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. <strong>Data Overhead</strong></h3>\n<p>The overall size of a JWT is quite more than that of a normal session token, which makes it longer whenever more data is added to it. </p>\n<p>So, if you’re adding more information in the token, it will impact the overall loading speed and thus hamper <a href=\"https://www.loginradius.com/customer-experience-solutions/\">user experience</a>. </p>\n<p>This situation can be fixed if right development practices are followed and minimum but essential data is added to the JWT. </p>\n<h3 id=\"3-shorter-lifespan\" style=\"position:relative;\"><a href=\"#3-shorter-lifespan\" aria-label=\"3 shorter lifespan permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. <strong>Shorter Lifespan</strong></h3>\n<p>Short-lived JWT are harder for users to work with. These tokens require frequent reauthorization, which can be annoying at times, especially for the clients. </p>\n<p>Adding refresh tokens and storing them appropriately is the only way to fix this scenario where long-lived refresh tokens can help users stay authorized for a more extended period of time. </p>\n<h2 id=\"conclusion\" style=\"position:relative;\"><a href=\"#conclusion\" aria-label=\"conclusion permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Conclusion</h2>\n<p>Enterprises can leverage tokens depending on the nature of the requirement and their individual business needs. </p>\n<p>Although JWT can be the right option in most scenarios if implemented correctly and securely by following the right security measures. </p>\n<p>However, one should consider the above-mentioned aspects before relying on a token for <a href=\"https://www.loginradius.com/blog/identity/authentication-vs-authorization-infographic/\">authentication and authorization</a>. </p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=pros-cons-token-authentication\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"book-a-demo-loginradius\"></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"July 29, 2021","updated_date":null,"description":"Tokens are widely used to provide authorization and authentication to users when they access a website or a mobile application. This post covers detailed information about the use of tokens along with its advantages and disadvantages.","title":"What is a Token? What are its Pros and Cons?","tags":["token authentication","authorization","cx"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/308758e0549fa18cda8a32ff5832f114/58556/pros-cons-token-authentication-cover.webp","srcSet":"/static/308758e0549fa18cda8a32ff5832f114/61e93/pros-cons-token-authentication-cover.webp 200w,\n/static/308758e0549fa18cda8a32ff5832f114/1f5c5/pros-cons-token-authentication-cover.webp 400w,\n/static/308758e0549fa18cda8a32ff5832f114/58556/pros-cons-token-authentication-cover.webp 800w,\n/static/308758e0549fa18cda8a32ff5832f114/cc834/pros-cons-token-authentication-cover.webp 1024w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.webp"}}}}]},"markdownRemark":{"excerpt":"Identity is evolving, and developers are at the forefront of this transformation. Every day brings a new learning—adapting to new standards…","fields":{"slug":"/identity/developer-first-identity-provider-loginradius/"},"html":"<p>Identity is evolving, and developers are at the forefront of this transformation. Every day brings a new learning—adapting to new standards and refining approaches to building secure, seamless experiences.</p>\n<p>We’re here to support developers on that journey. We know how important simplicity, efficiency, and well-structured documentation are when working with identity and access management solutions. That’s why we’ve redesigned the <a href=\"https://www.loginradius.com/\">LoginRadius website</a>—to be faster, more intuitive, and developer-first in every way.</p>\n<p>The goal? Having them spend less time searching and more time building.</p>\n<h2 id=\"whats-new-and-improved-on-the-loginradius-website\" style=\"position:relative;\"><a href=\"#whats-new-and-improved-on-the-loginradius-website\" aria-label=\"whats new and improved on the loginradius website permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What’s New and Improved on the LoginRadius Website?</h2>\n<p>LoginRadius’ vision is to give developers a product that simplifies identity management so they can focus on building, deploying, and scaling their applications. To enhance this experience, we’ve spent the last few months redesigning our interface— making navigation more intuitive and reassuring that essential resources are easily accessible.</p>\n<p>Here’s a closer look at what’s new and why it’s important:</p>\n<h3 id=\"a-developer-friendly-dark-theme\" style=\"position:relative;\"><a href=\"#a-developer-friendly-dark-theme\" aria-label=\"a developer friendly dark theme permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>A Developer-Friendly Dark Theme</h3>\n<p><img src=\"/f46881583c7518a93bb24e94c32320de/a-developer-friendly-dark-theme.webp\" alt=\"This image shows how LoginRadius offers several authentication methods like traditional login, social login, passwordless login, passkeys and more in a dark mode.\">    </p>\n<p>Developers spend long hours working in dark-themed IDEs and terminals, so we’ve designed the LoginRadius experience to be developer-friendly and align with that preference.</p>\n<p>The new dark mode reduces eye strain, enhances readability, and provides a seamless transition between a coding environment and our platform. Our new design features a clean, modern aesthetic with a consistent color scheme and Barlow typography, ensuring better readability. High-quality graphics and icons are thoughtfully placed to enhance the content without adding visual clutter.</p>\n<p>So, whether you’re navigating our API docs or configuring authentication into your system, our improved interface will make those extended development hours more comfortable and efficient.</p>\n<h3 id=\"clear-categorization-for-loginradius-capabilities\" style=\"position:relative;\"><a href=\"#clear-categorization-for-loginradius-capabilities\" aria-label=\"clear categorization for loginradius capabilities permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Clear Categorization for LoginRadius Capabilities</h3>\n<p><img src=\"/e5358b82be414940f3fb146013845933/capabilities.webp\" alt=\"This image shows a breakdown of all the LoginRadius CIAM capabilities, including authentication, security, UX, scalability and multi-brand management.\"></p>\n<p>We’ve restructured our website to provide a straightforward breakdown of our customer identity and access management platform capabilities, helping you quickly find what you need:</p>\n<ul>\n<li>Authentication: Easily understand <a href=\"https://www.loginradius.com/blog/identity/authentication-option-for-your-product/\">how to choose the right login method</a>, from traditional passwords and OTPs to social login, federated SSO, and passkeys with few lines of code.</li>\n<li>Security: Implement no-code security features like bot detection, IP throttling, breached password alerts, DDoS protection, and adaptive MFA to safeguard user accounts.</li>\n<li>User Experience: Leverage AI builder, hosted pages, and drag-and-drop workflows to create smooth, branded sign-up and login experiences.</li>\n<li>High Performance &#x26; Scalability: Confidently scale with sub-100ms API response times, 100% uptime, 240K+ RPS, and 28+ global data center regions.</li>\n<li>Multi-Brand Management: Efficiently manage multiple identity apps, choosing isolated or shared data stores based on your brand’s unique needs.</li>\n</ul>\n<p>This structured layout ensures you can quickly understand each capability and how it integrates into your identity ecosystem.</p>\n<h3 id=\"developer-first-navigation\" style=\"position:relative;\"><a href=\"#developer-first-navigation\" aria-label=\"developer first navigation permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Developer-First Navigation</h3>\n<p><img src=\"/a8c155c2b6faf3d5f4b4de4e2b14d763/developers-menu.webp\" alt=\"This image shows the LoginRadius menu bar, highlighting the developer dropdown.\">   </p>\n<p>We’ve been analyzing developer workflows to identify how you access key resources. That’s why we redesigned our navigation with one goal in mind: to reduce clicks and make essential resources readily available.</p>\n<p>The new LoginRadius structure puts APIs, SDKs, and integration guides right at the menu bar under the Developers dropdown so you can get started faster. Our Products, Solutions, and Customer Services are also clearly categorized, helping development teams quickly find the right tools and make informed decisions.</p>\n<h3 id=\"quick-understanding-of-integration-benefits\" style=\"position:relative;\"><a href=\"#quick-understanding-of-integration-benefits\" aria-label=\"quick understanding of integration benefits permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Quick Understanding of Integration Benefits</h3>\n<p><img src=\"/b2f9a964a2da0ea83e2f8596b833bba7/we-support-your-tech-stack.webp\" alt=\"This image shows a list of popular programming languages and frameworks offered by LoginRadius.\"></p>\n<p>Developers now have a clear view of the tech stack available with LoginRadius, designed to support diverse business needs.</p>\n<p>Our platform offers pre-built SDKs for Node.js, Python, Java, and more, making CIAM integration seamless across popular programming languages and frameworks.</p>\n<h2 id=\"over-to-you-now\" style=\"position:relative;\"><a href=\"#over-to-you-now\" aria-label=\"over to you now permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Over to You Now!</h2>\n<p>Check out our <a href=\"https://www.loginradius.com/\">revamped LoginRadius website</a> and see how the improved experience makes it easier to build, scale, and secure your applications.</p>\n<p>Do not forget to explore the improved navigation and API documentation, and get started with our free trial today. We’re excited to see what you’ll build with LoginRadius!</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"February 21, 2025","updated_date":null,"description":"LoginRadius’ vision is to give developers a product that simplifies identity management so they can focus on building, deploying, and scaling their applications. To enhance this experience, we’ve redesigned our website interface, making navigation more intuitive and reassuring that essential resources are easily accessible.","title":"Revamped & Ready: Introducing the New Developer-First LoginRadius Website","tags":["Developer tools","API","Identity Management","User Authentication"],"pinned":true,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.7857142857142858,"src":"/static/80b4e4fbe176a10a327d273504607f32/58556/hero-section.webp","srcSet":"/static/80b4e4fbe176a10a327d273504607f32/61e93/hero-section.webp 200w,\n/static/80b4e4fbe176a10a327d273504607f32/1f5c5/hero-section.webp 400w,\n/static/80b4e4fbe176a10a327d273504607f32/58556/hero-section.webp 800w,\n/static/80b4e4fbe176a10a327d273504607f32/99238/hero-section.webp 1200w,\n/static/80b4e4fbe176a10a327d273504607f32/7c22d/hero-section.webp 1600w,\n/static/80b4e4fbe176a10a327d273504607f32/1258b/hero-section.webp 2732w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.webp"}}}},"pageContext":{"limit":6,"skip":432,"currentPage":73,"type":"///","numPages":164,"pinned":"ee8a4479-3471-53b1-bf62-d0d8dc3faaeb"}},"staticQueryHashes":["1171199041","1384082988","2100481360","23180105","528864852"]}