{"componentChunkName":"component---src-templates-blog-list-template-js","path":"/96","result":{"data":{"allMarkdownRemark":{"edges":[{"node":{"excerpt":"If you are running a B2B company, every person in your team should be primed to work hard and persevere in selling your products and…","fields":{"slug":"/growth/tips-and-tricks-b2b-consultant/"},"html":"<p>If you are running a B2B company, every person in your team should be primed to work hard and persevere in selling your products and services to the companies you serve. Unlike businesses that sell directly to consumers, it takes more effort to take care of conglomerates and corporations.</p>\n<p>To start with, it is not easy to run any kind of business. It takes more than monetary investment but also expends time and energy. With your expertise, these companies can easily conduct their operations while minimizing factors that impede their growth. </p>\n<p>However, boosting your profitability as a business-to-business consultant is no mean feat. Some clients attempt to do things on their own to save on the cost. Your priority is to show your clients the value of your products and services by proving that you are an indispensable component to their expansion plans. Here are some tips and tricks so you can attract more clients whose business you can enhance and develop.</p>\n<h2 id=\"demonstrate-your-expertise\" style=\"position:relative;\"><a href=\"#demonstrate-your-expertise\" aria-label=\"demonstrate your expertise 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>Demonstrate Your Expertise</h2>\n<p>In order to secure more clients, you need to demonstrate your expertise. They should know what you can do to help them grow. So, you can inspire confidence towards your brand, your prospects ought to know the companies you currently serve and have served in the past successfully. </p>\n<p>Apart from the usual client calls and emails, you can conduct speaking engagements that show off your special skills, this can also mean taking part in podcasts. This is one way to position yourself in the industry. You can also produce quality content, which you can disseminate through email, social media, your website or even create your own online course. Focus on engaging videos because studies show that <a href=\"https://www.socialmediatoday.com/content/consumers-64-more-likely-purchase-product-after-watching-online-video-infographic\">64% of users</a> are more likely to buy a product after watching a video. </p>\n<p>Showing materials that resonate with your clients will increase your website traffic. Work hard to ascertain these are fresh, informative, and entertaining. These steps will draw them to your site, which contains a wealth of information on your product offerings, client lists, pricing, reviews, and more. Highlight your successful projects to show off your capabilities.  Through amazing content, your prospects can truly understand <a href=\"https://www.upflip.com/learn/how-to-value-a-business\">your brand and value</a>.</p>\n<h2 id=\"have-a-good-online-presence\" style=\"position:relative;\"><a href=\"#have-a-good-online-presence\" aria-label=\"have a good online presence 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>Have a Good Online Presence</h2>\n<p>In this digital, modern world, working hard to grow your online presence is no longer a want but a need. Today, 5 billion people own a mobile device, and within it are at least two social media apps that they check throughout the day. Since everyone hangs out online, you should leverage this figure and go where your clients are. </p>\n<p><a href=\"https://mumbrella.com.au/63-of-consumers-prefer-in-store-shopping-blis-research-585127\">63% of modern shopping begins online</a>. People will go through social media reviews and pages to find out more about a product or company before engaging them. This also helps them to create a picture of the general outlook of the company, setting them in a position to decide whether to make a purchase or not.</p>\n<p>To succeed in marketing your business, it is all about sending the right message at the right time to the right target audience. You need an official website and social media profiles as these will amplify your credibility and authority. Also keep in mind that <a href=\"https://tech.co/digital-marketing/email-marketing-tips\">email marketing</a> is just as important for marketing your business as it is for maintaining it. </p>\n<p>A lot of thought must be put when creating the company’s website. This is because it can either build or break the company. Research has it that when making bigger purchases, such as the in the case of a B2B company, <a href=\"https://www.vividfish.co.uk/blog/89-of-customers-begin-their-buying-process-with-a-search-engine-source-fleishman-hillard\">89% of prospects</a> will always go through the website before deciding. Even though the traffic doesn’t guarantee conversions, you ought to ensure that you’re always prepared to turn such prospects into customers. </p>\n<p>As new visitors continue to visit your site, they can view robust educational content and targeted offers that can bring them closer to you, eventually bringing qualified leads to you. One of the key things to take into consideration is the site’s design. Web design is often an underappreciated factor, which has the power to influence your audience’s brand perception. This means firms can take advantage of it to set themselves apart and convey the credibility they need to succeed. </p>\n<p>Do not forget to prime your website for SEO (Search Engine Optimization). It should be easy to navigate for customer satisfaction. You need also exert effort to engage with your clients on social media. Make it a habit to post daily with quality articles, pictures, and most of all, videos that are relevant to your niche. </p>\n<p>There are <a href=\"https://www.loginradius.com/blog/fuel/2021/01/consumer-experience-b2b-saas/\">many B2B companies</a> that have excelled through social media, all taking different routes in realizing their goals. Some of the best examples are: </p>\n<ul>\n<li><strong>IBM</strong></li>\n</ul>\n<p><a href=\"https://www.ibm.com/\">IBM</a> is one of the largest and oldest technology companies in the world, founded over 100 years ago. It has a rich history of innovation which has greatly contributed to its success story. Their social media accounts do a great job at explaining this history through various methods, such as storytelling. </p>\n<p>Many B2B companies have had to embrace <a href=\"https://blog.zoominfo.com/b2b-brand-storytelling/?utm_source=guestpost&#x26;utm_medium=referral&#x26;utm_campaign=elevationb2b\">brand storytelling</a> through the use of longform content <a href=\"https://www.onehourprofessor.com/start-blog/\">such as blog posts</a> and videos. However, IBM’s feed remains to be a constant reminder that you can tell a full story in a single tweet.</p>\n<ul>\n<li><strong>Mailchimp</strong></li>\n</ul>\n<p>Many brands perform okay in their social content, however, the one thing that lacks from a typical B2B social media platform is variety. Most of these companies never bother straying from one content type, color scheme, style, etc. Luckily, they can all learn a thing or two from Mailchimp. </p>\n<p>Mailchimp is a popular marketing automation provider, and its social media pages act as a benchmark for many others out there. A quick look at the company’s Instagram feed and you’ll see what we mean by variety. While many B2B brands consider Instagram as an afterthought, Mailchimp’s is updated consistently with fresh content. </p>\n<p>More importantly, one can see that their feed is exceptionally diverse. It features just about every type of content you could imagine, from slideshows, fun animations, short videos, etc. These strategies can be seen to work, with the company’s impressive engagement on social media and a huge follower base. </p>\n<p>Remember, every like, comment, and share will do wonders in promoting your products and services. The more followers you have, the more people will see your messages, thereby expanding your brand's reach to a wider audience.  </p>\n<h2 id=\"build-credibility\" style=\"position:relative;\"><a href=\"#build-credibility\" aria-label=\"build credibility 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>Build Credibility</h2>\n<p>When it comes to any kind of business, reputation is everything. This matters even more when you are a B2B because you are selling to tough business owners who analyze their ROI (return on investments) before handing over their money. Prioritize building credibility so your prospects will believe in your brand. If your prospects trust you, they will recommend you to others. Most of all, they will remain loyal to you and become repeat customers. </p>\n<p>Make sure you can demonstrate your competence by showing relevant facts and figures that illustrate your stellar results. Be concrete and thorough when you make <a href=\"https://www.visme.co/presentation-software/\">presentations</a> to prove that you have what it takes to <a href=\"https://www.loginradius.com/blog/fuel/2021/02/attract-consumers-to-your-website/\">help their business grow</a>. </p>\n<p>It would help if you also scaled your advice to suit the needs of your prospects. It is vital to <a href=\"https://surveyanyplace.com/how-to-market-your-consulting-business-using-assessments/\">conduct maturity assessments</a> to evaluate the requirements of your client's business. In doing so, you can craft customized recommendations and specific plans of action. </p>\n<p>To add to that, auditing customer data is one of the ways of maintaining company credibility. According to <a href=\"https://www.marketscan.co.uk/insights/add-value-to-your-customer-database-with-a-data-quality-audit/\">Marketscan</a>, one of the leading B2B data management companies in the UK, dirty data accounts to 15% of the loses companies make in their annual revenues. </p>\n<p>Dirty data can be used to explain many things, but in most cases, the term is used to refer to:</p>\n<ul>\n<li>Incomplete records</li>\n<li>Duplicate records</li>\n<li>Out-of-date information</li>\n<li>Typographical errors.</li>\n</ul>\n<p>To continue delivering experiences and services that others will cherish, as a B2B consultant, you need to get the accurate data of your customers. <a href=\"https://romax.co.uk/wp-content/uploads/2015/10/Romax-Data-Cleansing-and-Enhancement-Services.pdf\">Inaccurate data</a> leads to slow response rates, and sometimes even zero responses.</p>\n<p>According to Romax, some things that might appear simple, might have detrimental impacts on your business, if you do not keep a good track of your customer data.</p>\n<p>For instance, your relationship with a client can be negatively impacted if you still have the old office address and not the current one. Another example is dealing with a former employee of the company who still uses your services or products, not knowing that they no longer work there. This could also damage your relationship with the key client. </p>\n<p>Apart from ruining your reputation and credibility, you also end up wasting lots of unnecessary resources when you do not audit customer data. An example is spending much of your resources trying to contact a client who closed business, making you waste your valuable marketing budget and time.</p>\n<p>To avoid such mistakes, and to maintain the credibility of your brand, ensure that customers’ details are correct &#x26; up to date.</p>\n<h2 id=\"use-customers-pain-and-gain-to-your-advantage\" style=\"position:relative;\"><a href=\"#use-customers-pain-and-gain-to-your-advantage\" aria-label=\"use customers pain and gain to your advantage 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>Use Customers' \"Pain\" and Gain to Your Advantage</h2>\n<p>Because you are working in sales, you truly understand the point of pain and gain. You are adept on how these influences your clients when it comes to making their decisions.</p>\n<p>Studies indicate that 75% of people will be more inclined to act <a href=\"https://www.uwgb.edu/sbdc/assets/multi/news/201611-Motivating-by-the-Pain-Pleasure-Principle.pdf\">when their motivation is pain</a>. This is understandable because pain is uncomfortable, and no one wants to be stuck in this predicament. When it comes to selling to businesses, you should target CFOs who naturally want to avoid all sorts of pain in daily operations. They want to mitigate costs and minimize productivity issues.</p>\n<p>In contrast, CEOs are all about results and goals. They are visionaries that think positively and seek gain or pleasure. It is your job to categorize your clients so you can tailor your presentations to what best suits their disposition. </p>\n<p>If you are speaking with someone resistant to pain, focus on cutting costs, minimizing redundancies, and making processes easier. If you are meeting a gain advocate, then you should focus on how your services can help their company grow. When you can use this knowledge to your advantage, you will have more successful meeting outcomes and project proposals.  </p>\n<p>While <a href=\"https://www.fedex.com/en-us/home.html\">FedEx</a> is currently available to individual customers, it has been approved and rated as one of the best B2B companies in the world. The company is placed as <a href=\"https://smallbiztrends.com/2018/08/most-trusted-b2b-brands-2018.html\">the 2nd most trusted B2B company</a> by SageFrog and appears in Sacunas’ Top 100 B2B brands list. This company hasn’t made to these lists by mistake, this is because it is mostly committed towards customer service, experience, and open communication. Unlike most of its competitors, FedEx has taken into consideration its customers’ pain points and presented itself as a customer-centric company.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 512px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 71.2890625%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAIAAACgpqunAAAACXBIWXMAAAsTAAALEwEAmpwYAAADW0lEQVQozwXBbVPaBgAA4PyR3RW7eaeDaxGwBQQMbwExGBFIQiABCRgQSIABhQARxc6yijvPnp2z/VJdT7tzVXedN3dn6yq2vtFaq+3c1nZ33foz9jwAny3luIyQKYzly2kCp+XieFdHUitN66Ss5jLbLY+Bck4v79dohrlCxAuDnW24xx6gUZRAgSEmQcViKb7Ej1ZzpWIyycYZepgMMC50yIGE9GoWVHDdMqdOE0+VMoxnwKKuT99cXvkhw+eB8cqEqTdod6c2Hh/un/z9++Gb3/aPN3derm4+W/5lOxtPDJu7edxB9ZijicK1YcJtUc7d+W7v8Hl5rALcvT1vtJBSpXd+8dHbd59enL5vnr0/PP5r7+jsefPtvYWVBGKdycUJgzbEpPmEHzEq7t5beNzYzY8IwNryQ8rPSjqxTHGm+e7f7Vfnr//8uLH76tH+yXbz9NfGiwJJ3PQhuE5NM8kRjqT7OovZyPztepElgbUHq9dSxQ6FY8CVvvXzlrC0Pru2VftxQ7j/8KenezvNP+rViQyowFRXPGQoH3W5wPbJCX5x4Y7LYQOsPX39CCpXOS53eZbWnzw7Pn9ycNo4Ots5eLO1+/LpwevFpdUSYnJ3iBWdKi7YC2vF+TK/vLZO+IPAJalCB5pBCJco0RvT9w8+fDz751Pj5L/NxvnRyYetxvHKRkOgcJ+stV0sieKaAV1bgA5E2Lg34AfaxJcUV7u0ICyWWZ1YbPr7heu1mXim6gmx0VguEsvSTCqIYeFeyOVGedbPePui8WiYCZPBAEB4/DjqTSf50fHpXH5MGKmVK7Wi8PXo9alafTaTE2LxZIiOkOQgQVAYSiCIy2iCbDBigcxAha9U8iNDdKLPGfQFuEJlUhj/tnrjVm1qbnZu0Y2SZgsM2xBIbzJDdhdiN2iv+gPUN1M1JhoGvkpkMmxWD9pELVID5I7lq1x+vCBM5sq14mg9yhVQD41bLDaVymxBUMSmkrVbeiAf5YP7HUAsHB8ajMhkmgsXJDbESzEpJxmBscFuO9qDkVSYs0J2U9tFZWurVmeGLaD8yxal+ordYbf22gCapFGn5/MvJCKR2Ajjatilt2MGOwa7KTbNhyIpjUKpbxVJRaIurREy6NovftbS0iKWSKRy+f9LYWx750PUfAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"tips-b2b\"\n        title=\"tips-b2b\"\n        src=\"/static/2321a8a36ac3ef5998d354314a520131/01e7c/tips-b2b.png\"\n        srcset=\"/static/2321a8a36ac3ef5998d354314a520131/01e7c/tips-b2b.png 512w\"\n        sizes=\"(max-width: 512px) 100vw, 512px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h2 id=\"be-your-clients-personal-trainer\" style=\"position:relative;\"><a href=\"#be-your-clients-personal-trainer\" aria-label=\"be your clients personal trainer 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>Be Your Client's Personal Trainer</h2>\n<p>You are meeting people who are running their own businesses, and the key to successful consultative selling to this discerning crowd is to show them how you can help them reach their goals. Sometimes, you must push them hard like a real trainer in order to build them up. After all, for there to be any kind of growth, there must be some growing pains.</p>\n<p>You can focus your meetings on problems that they face when running their businesses. Doing this will allow you to understand their operations and issues fully. It is only when you are fully engaged that you can craft feasible solutions to their problems. </p>\n<p>It can be quite tricky to execute and accomplish this part because it requires building trust. Thus, it would help if you made it a point to connect with your prospects regularly may it be through a phone call, webinar, online course, or an email series. </p>\n<p>As a B2B consultant, you need to be ready to provide all the information that your customers might require, helping them understand your products and how they can be a solution for them. If a user is not presented with such data, they will seek it elsewhere.</p>\n<p>There are two proven ways that the online value ladder works. They include proving your value to customers freely through educational content and eventually closing the deal once they trust you. <a href=\"https://www.resmed.com/us/en/healthcare-professional/business-resources/education-and-research.html\">Resmed</a> is one of the companies to have targeted their customers through initiatives such as educating them. </p>\n<p>B2B companies have done this for years over the phone or a drink. You too should follow the same format to drive up traffic and sales in the digital field. </p>\n<h2 id=\"meet-face-to-face\" style=\"position:relative;\"><a href=\"#meet-face-to-face\" aria-label=\"meet face to face 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>Meet Face-to-Face</h2>\n<p>It is crucial to meet in person so you can ask your prospective clients all the right questions. This meeting is vital because the answers and data you gather can help you draft your initial proposal. When you are fully aware of your clients' needs and wants to expand their business, you can craft a concrete strategy to help them get the results they desire. </p>\n<p>If you work with facts coming from your clients, the chances of your proposal's approval become higher. Before the meeting, draft a list of questions, so you do not waste your client's precious time. Planning ahead shows you are a prepared professional who means business.</p>\n<p>Don't forget to dress to impress because first impressions do matter. Groom yourself and make sure you look polished. You are interacting with company owners, so you have to exude authority so they’ll feel confidence in your capabilities! Most of all, communicate with them effectively using professional language that inspires a connection.</p>\n<h2 id=\"systemize\" style=\"position:relative;\"><a href=\"#systemize\" aria-label=\"systemize 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>Systemize</h2>\n<p>Running a business takes a lot of money. At times, resources are quite scarce, whether it is money, time, energy, or manpower. When you are trying to acquire a new client, it is an expensive process that really stretches your budget. However, if you are able to systemize your client acquisition, you can plan better strategies and waste less resources. </p>\n<p>Investing in automation systems like <a href=\"https://hive.com/blog/project-management-software/\">project management software</a> for marketing, will help you track the movement of your business. This system will keep you organized, making things easier to access. When everything is seamless, you will feel more in control of your business.</p>\n<p>With this systemized tool at your disposal, you can access client metrics and measure engagement rates. Having this data on hand is excellent for monitoring. With the right information, you can make informed business decisions. You can focus on strategies that are working and tweak those that are not.</p>\n<h3 id=\"final-word\" style=\"position:relative;\"><a href=\"#final-word\" aria-label=\"final word 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 Word</h3>\n<p>As a B2B consultant, you are selling more than just a product. You are selling solutions that can help business owners achieve their objectives. If you want to be successful in securing their business, you need to conduct extensive research. You should also promote yourself well by demonstrating your expertise and concrete results.</p>\n<p>Don't forget to qualify each prospect to see if they fit with your company. Doing so allows you to optimize your limited resources. When you do your due diligence, it would be so much easier to convert your leads and prospects to actual clients.</p>\n<p><a href=\"https://www.loginradius.com/book-a-demo/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABdElEQVQY002RO0/CUBzFG6PtbZWHCAmRmBB5P8vDII9SSC0omog4oAEGjZMO6OKEuLjoJ2Fx0cSBwUQnXZxcHPwux38LJA7nNvfec8+5v1tOCCiwpbbhye2BxbYgBMtgIRVioDRRsARGXxZUzLlEHmehBaesQ4rrEMPViYf2DR9nDGKkChbVICVqsMt1WJI1sHCFwhUsUIFohJH49TxECvRUjhDW2mAbB5iP6hB8hUkhiRPN5KIZYJdrsEYrcCSpmQqMm6/m9ylUhSulY7N5ivROB3L9GOlGF3Ktbc4zuz341UPw/uIk0ESbBjoSGlYIx8BfzjSwVmyCEYEUUmCPa3Bnd+hwC75yC95S05SxbolU/iEbOCFCpDexEfIioTNCNd6Tp6IlMnNuGeeDe3z//OLx5RWj5zFGT2O8fXxh/P4Ja6w6vSEFCnTIlW2YiDzhzX7ATFKojDlvjpBPcDF4QPdyiG5/iE7/BmfXd+hd3VKpCoG8fzxWw2+c+yTpAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"book-a-demo-loginradius\"\n        title=\"book-a-demo-loginradius\"\n        src=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png\"\n        srcset=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/a6d36/book-a-demo-loginradius.png 650w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png 768w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/63ff0/book-a-demo-loginradius.png 2887w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></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":"February 26, 2021","updated_date":null,"description":"You are offering more than just a commodity as a B2B consultant. You sell strategies that can help business owners accomplish their goals. You need to conduct comprehensive research if you want to be successful in securing their business.","title":"7 Tips and Tricks for B2B Consultant: How to Grow Your Client's Business","tags":null,"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/37183568d32d591ddb49401ddc606c60/14b42/b2b-consultant.jpg","srcSet":"/static/37183568d32d591ddb49401ddc606c60/f836f/b2b-consultant.jpg 200w,\n/static/37183568d32d591ddb49401ddc606c60/2244e/b2b-consultant.jpg 400w,\n/static/37183568d32d591ddb49401ddc606c60/14b42/b2b-consultant.jpg 800w,\n/static/37183568d32d591ddb49401ddc606c60/9a763/b2b-consultant.jpg 1050w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Lidia Hovhannisyan","github":null,"avatar":null}}}},{"node":{"excerpt":"What is Risk-Based Authentication Risk-based authentication is a non-static authentication system that considers the profile(IP address…","fields":{"slug":"/identity/risk-based-authentication/"},"html":"<h1 id=\"what-is-risk-based-authentication\" style=\"position:relative;\"><a href=\"#what-is-risk-based-authentication\" aria-label=\"what is risk based 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>What is Risk-Based Authentication</h1>\n<p>Risk-based authentication is a non-static authentication system that considers the profile(IP address, Browser, physical Location, and so on) of a consumer requesting access to the system to determine the risk profile associated with that action. The risk-based implementation allows your application to challenge the consumer for additional credentials only when the risk level is appropriate.</p>\n<p>It is a method of applying various levels of stringency to authentication processes based on the likelihood that the access to a given system could result in it being compromised. As the level of risk increases, the authentication process becomes more complicated and restrictive.</p>\n<h2 id=\"how-risk-based-authentication-works\" style=\"position:relative;\"><a href=\"#how-risk-based-authentication-works\" aria-label=\"how risk based authentication 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 Risk-Based Authentication Works</h2>\n<p>RBA implementation follows the challenge and response process. One party presents a challenge (in the form of a question) and the other party provides a response (in the form of response) as the second factor after submitting the username and password.</p>\n<p>Whenever a system identifies any risk with a login activity, there can be multiple actions based on the configuration setup. See below:</p>\n<ul>\n<li><strong>Block the consumer</strong> - The system will block the consumer if it identifies a compromising risk associated with the consumer account. </li>\n<li>\n<p><strong>Multi-Factor Authentication</strong> - The system will prompt the consumer to pass through the next security channel as below: </p>\n<ul>\n<li>Google Authenticator</li>\n<li>SMS Passcode</li>\n</ul>\n</li>\n</ul>\n<p>In addition to prompting the consumer with challenge and response, there are options to either send an email to the consumer about the suspicious activity or let the Site Administrator know that the account has been compromised. It will alert the consumer as well as the Site Administrator.</p>\n<p><a href=\"https://www.loginradius.com/resource/ebook/buyers-guide-to-multi-factor-authentication/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABaElEQVQY002QTUsCYRSFJUjHd8Y0TSpkFMaPzG/wY2Yc09TRIi2oFkUWBO0KrE07c9OqX1KbFrWJIoJo5aZlixb9ldOdMbXFgct77vvce67FHinBEFtaAR8tQyDxVDPj7c8biQsVweI1zCnb8KTqsCd0cNEKuLAGzvBJlhHMHa/AEVbBpAIckSK8aR3uRBWu+Kr5wQSGi+CTDYjVfcT1PTB5B7ZkE2zsa0OgUUhKC/JGB6naLgK5NQTy6+BDCmaWy+QPe4wEotyCL7cOb6YBX5b6lDbcKX081DIq5tN1iNkm/NTsiZUxGy1BCCpwxirjyNagSp/r8KubBG5DJNgC9ZuR/wONyY6IhmkxC0Z3sgbyECgek2QTKNCWlsUMzno3+Pr+wf3TG24fnnH3+IL3wSdePwZw0XmsweIE6KSNbJIKe0gjqAqOYEyabDgVKEDeOsYpQQ/P+zjo9tDpXuHk8hpHF31zqI1Yv+SkwLSl98KVAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"mfa\"\n        title=\"mfa\"\n        src=\"/static/dce0b5caab393383c0c906c5653faa64/e5715/mfa.png\"\n        srcset=\"/static/dce0b5caab393383c0c906c5653faa64/a6d36/mfa.png 650w,\n/static/dce0b5caab393383c0c906c5653faa64/e5715/mfa.png 768w,\n/static/dce0b5caab393383c0c906c5653faa64/63ff0/mfa.png 2887w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></a></p>\n<h2 id=\"why-should-businesses-use-rba\" style=\"position:relative;\"><a href=\"#why-should-businesses-use-rba\" aria-label=\"why should businesses use 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>Why Should Businesses Use RBA</h2>\n<p>Risk-based authentication is an essential security feature because it works in real-time to prevent cyber frauds like accounts getting compromised without causing an inconvenience for legitimate consumers. </p>\n<p>Risk-based authentication helps businesses in achieving the following goals:</p>\n<ul>\n<li>Reduce online fraud and the risk of improper access.</li>\n<li>It enforces different authentication levels depending on factors such as consumer activity and geolocation and similar calculated risk scores.</li>\n<li>It helps in improving the consumer experience. Consumers need to provide the additional details for authentication only when the associated risk appears.</li>\n<li>Access control in federated setups.</li>\n<li>Widely used and easy to deploy.</li>\n</ul>\n<h2 id=\"how-to-implement-rba-with-loginradius\" style=\"position:relative;\"><a href=\"#how-to-implement-rba-with-loginradius\" aria-label=\"how to implement rba with loginradius 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 Implement RBA with LoginRadius</h2>\n<p>At LoginRadius, we know how critical it is to maintain consumer security and how we can efficiently and effectively manage the process if a consumer account gets compromised. </p>\n<p>LoginRadius’ RBA feature allows a quick, simple, and time-saving way to implement this on your website. You can create a consumer risk profile based on the below factors :</p>\n<ul>\n<li>IP</li>\n<li>City</li>\n<li>Browser</li>\n<li>Country.</li>\n</ul>\n<h2 id=\"a-use-case-of-rba\" style=\"position:relative;\"><a href=\"#a-use-case-of-rba\" aria-label=\"a use case of 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>A Use Case of RBA</h2>\n<p>LoginRadius Risk-based authentication applies the precise security level for each unique consumer interaction and avoids unnecessary security steps for low-risk transactions, which can add friction for the consumer. </p>\n<p>A good example is a legitimate consumer logging into a banking portal with a known personal device that has been registered with the bank, using the same browser they typically do. In this case, the system determines the risk of fraud is pretty low that they don’t need to re-authenticate after they’ve logged in. </p>\n<p>Only when the consumer behavior deviates from normal activity (such as a different device or Browser) are additional authentication challenges added, resulting in increased security hurdles for riskier transactions such as bank transactions. The consumer will be prompted to authenticate themselves in one or another form and, if successful, they will go on to the correct portal.</p>\n<p>To learn more about this feature, please visit our <a href=\"https://www.loginradius.com/docs/api/v2/admin-console/platform-security/risk-based-auth/\">Risk-Based Authentication documentation</a>.</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>In this article, we talked about making the accounts secured using Risk Based Authentication and learnt how it will enhance the consumer security. This feature helps define the risk areas and take actions if any risk is detected with respect to the defined constraints.</p>\n<p><a href=\"https://www.loginradius.com/book-a-demo/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABdElEQVQY002RO0/CUBzFG6PtbZWHCAmRmBB5P8vDII9SSC0omog4oAEGjZMO6OKEuLjoJ2Fx0cSBwUQnXZxcHPwux38LJA7nNvfec8+5v1tOCCiwpbbhye2BxbYgBMtgIRVioDRRsARGXxZUzLlEHmehBaesQ4rrEMPViYf2DR9nDGKkChbVICVqsMt1WJI1sHCFwhUsUIFohJH49TxECvRUjhDW2mAbB5iP6hB8hUkhiRPN5KIZYJdrsEYrcCSpmQqMm6/m9ylUhSulY7N5ivROB3L9GOlGF3Ktbc4zuz341UPw/uIk0ESbBjoSGlYIx8BfzjSwVmyCEYEUUmCPa3Bnd+hwC75yC95S05SxbolU/iEbOCFCpDexEfIioTNCNd6Tp6IlMnNuGeeDe3z//OLx5RWj5zFGT2O8fXxh/P4Ja6w6vSEFCnTIlW2YiDzhzX7ATFKojDlvjpBPcDF4QPdyiG5/iE7/BmfXd+hd3VKpCoG8fzxWw2+c+yTpAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"book-a-demo-loginradius\"\n        title=\"book-a-demo-loginradius\"\n        src=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png\"\n        srcset=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/a6d36/book-a-demo-loginradius.png 650w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png 768w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/63ff0/book-a-demo-loginradius.png 2887w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></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":"February 26, 2021","updated_date":null,"description":"RBA is a method of applying various levels of stringency to authentication processes based on the likelihood that the access to a given system could result in it being compromised. As the level of risk increases, authentication becomes more restrictive.","title":"What is Risk-Based Authentication","tags":["data security","risk based authentication","cx"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5384615384615385,"src":"/static/77ac4a923dd99aa30b4d1f87844da56e/91a06/risk-based-authentication.png","srcSet":"/static/77ac4a923dd99aa30b4d1f87844da56e/69585/risk-based-authentication.png 200w,\n/static/77ac4a923dd99aa30b4d1f87844da56e/497c6/risk-based-authentication.png 400w,\n/static/77ac4a923dd99aa30b4d1f87844da56e/91a06/risk-based-authentication.png 587w","sizes":"(max-width: 587px) 100vw, 587px"}}},"author":{"id":"Rajeev Sharma","github":null,"avatar":null}}}},{"node":{"excerpt":"Tenancy in cloud computing refers to the sharing of computing resources in a private or public environment that is isolated from other users…","fields":{"slug":"/identity/single-tenant-vs-multi-tenant/"},"html":"<p>Tenancy in <a href=\"https://www.loginradius.com/blog/identity/2021/01/identity-management-in-cloud-computing/\">cloud computing</a> refers to the sharing of computing resources in a private or public environment that is isolated from other users and kept secret. Tenancy in SaaS is divided into two types: single-tenant SaaS and multi-tenant SaaS.</p>\n<h2 id=\"what-is-a-single-tenant-architecture\" style=\"position:relative;\"><a href=\"#what-is-a-single-tenant-architecture\" aria-label=\"what is a single tenant architecture 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 Single-Tenant Architecture</h2>\n<p>A single-tenant cloud runs on a dedicated infrastructure. This means that the hardware, storage, and network are dedicated to a single client, and there are no neighbors to share hosted resources with. They may reside in a dedicated offsite data center or with a managed private cloud provider. </p>\n<p>In a single-tenancy architecture, each tenant gets their own database. This way, data from each tenant remains separated from the other. Furthermore, the architecture is built such that only one software instance per SaaS server is allowed. </p>\n<h3 id=\"advantages-single-tenant-cloud\" style=\"position:relative;\"><a href=\"#advantages-single-tenant-cloud\" aria-label=\"advantages single tenant cloud 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>Advantages single-tenant cloud</h3>\n<ul>\n<li><strong>Enhanced security</strong> - Single-tenancy offers true data isolation that contributes to optimal protection and increased security. </li>\n<li><strong>Migration</strong>- When a tenant wants to migrate from a single-tenant (SaaS) system into a self-hosted or local environment, they can quickly move an application to their own managed servers. </li>\n<li><strong>Customization</strong>- Single tenancy offers the ability to architect an environment exactly how a consumer needs it. </li>\n<li><strong>Reliability</strong>- Single tenancy offers consistency and the highest level of performance for an application.</li>\n</ul>\n<h3 id=\"drawbacks-of-single-tenant-cloud\" style=\"position:relative;\"><a href=\"#drawbacks-of-single-tenant-cloud\" aria-label=\"drawbacks of single tenant cloud 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>Drawbacks of single-tenant cloud</h3>\n<ul>\n<li><strong>Cost</strong>: Because, single-tenant does not allow cost-sharing for facilities such as deployment and monitoring, companies end up paying more. Also, more customizations and maintenance often take more resources and time, which results in higher costs.</li>\n<li><strong>Maintenance</strong>: Since a single-tenant architecture needs continuous modifications and improvements, a lot of maintenance is required. </li>\n<li><strong>Setup</strong>: There may be delays due to individual installs, and not to forget the learning curves, that should be considered as well. </li>\n</ul>\n<h2 id=\"what-is-a-multi-tenant-architecture\" style=\"position:relative;\"><a href=\"#what-is-a-multi-tenant-architecture\" aria-label=\"what is a multi tenant architecture 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 Multi-Tenant Architecture</h2>\n<p>Multi-tenant cloud architecture is a single cloud infrastructure built to serve multiple businesses. The entire system may cover multiple servers and data centers, incorporated into a single database. </p>\n<p>Cloud providers offer multi-tenancy as a gateway to share the same application with multiple businesses, on the same hardware, in the same operating environment, and with the same storage mechanism. </p>\n<h3 id=\"advantages-of-multi-tenant-architecture\" style=\"position:relative;\"><a href=\"#advantages-of-multi-tenant-architecture\" aria-label=\"advantages of multi tenant architecture 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>Advantages of multi-tenant architecture</h3>\n<ul>\n<li><strong>Scalable</strong>: It is very easy to <a href=\"https://www.loginradius.com/blog/identity/2021/01/user-onboarding-revamp-application/\">onboard users</a> with a multi-tenant cloud. In fact, there is no difference between onboarding ten users from a thousand companies or a thousand users from one company.</li>\n<li><strong>Saves money</strong>: Multi-tenancy allows resources to be consolidated and allocated efficiently, thereby saving a lot of expenses. </li>\n<li><strong>Flexible</strong>: A multi-tenant cloud can allocate a pool of resources to the users who need it, as their needs scale up and down.</li>\n<li><strong>Efficient</strong>: Multitenancy reduces the need to manage infrastructure and handle updates. </li>\n</ul>\n<p><a href=\"https://www.loginradius.com/resource/cloud-security-system-sase-whitepaper\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABbklEQVQY0z2QOU8CURSFiVFnmBGZRCAQAU0UxQEUkTDjsC8iiGDAxAU0IcSKxKWxEm2s+CVamWglNiZU2tjZmPhbjneejsXJW+5937nvmMwLCegSFpMQ/SlMGFpKsbNR18XPaxACOdjUOqaW8zAHC+D9aZh9cfB/PSYDZlspwCpnIOjnhTgmaW+PlCAFc+DpAYPSKhLEmzuEXNiHoDTAhYp0r/0aUp0BOXL2pRpI7p5A3WlDq3cQ2jiASEbWQJY16nKsFuFRKnBGinBENuGOluCOleFRt9lvGNBo9tJluNRCZOsIa6SZ9SoDSsHsv7tFTsNJkOlYhdU9ahWuaBl2MjJ+wYCiPwkLTcL5Ehid0zAyG8MYrQLlYyWgnqnJFUb3qo/Pr288PL/i7nGA+6cXDN8/MBi+MeNxemPSw2SThPIQKXBRzkKgXHhlD1K0BimQYc66iVJro9vro3V+jeZpD82zHjqXtzi+uGGmHA33A90sxCcku3zKAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Future-proof-your-security\"\n        title=\"Future-proof-your-security\"\n        src=\"/static/a164480ea3177cb0422ee6104202f8b3/e5715/Future-proof-your-security.png\"\n        srcset=\"/static/a164480ea3177cb0422ee6104202f8b3/a6d36/Future-proof-your-security.png 650w,\n/static/a164480ea3177cb0422ee6104202f8b3/e5715/Future-proof-your-security.png 768w,\n/static/a164480ea3177cb0422ee6104202f8b3/63ff0/Future-proof-your-security.png 2887w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></a></p>\n<h3 id=\"drawbacks-of-multi-tenant-cloud\" style=\"position:relative;\"><a href=\"#drawbacks-of-multi-tenant-cloud\" aria-label=\"drawbacks of multi tenant cloud 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>Drawbacks of multi-tenant cloud</h3>\n<ul>\n<li><strong>Security</strong>: Cybercriminals can take advantage of multiple access points to exploit <a href=\"https://www.loginradius.com/blog/identity/2021/01/7-web-app-sec-threats/\">systems vulnerabilities</a>. </li>\n<li><strong>Backup and restoration</strong>: A lot of companies fail to keep up with the latest system backup advances and restore options. </li>\n<li><strong>Limited management</strong>: They do not provide a lot of customization options, and that reduces the consumer's ability to interact with the system.</li>\n</ul>\n<p>To learn more about Single-Tenant vs Multi-Tenant Cloud, check out the infographic by LoginRadius. Find out which is the right solution for your business. </p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 734.1538461538462%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAACTCAIAAAABXq46AAAACXBIWXMAAAsSAAALEgHS3X78AAAR0klEQVRo3q1ZCViTZ7ZOCCSBsINsCgjK6gayb4K4wtQFBARcSrWKDljRqu2903Y6t89Yq3ba3plWW507o9O5be3YdtrqjO21dqrVLraiIhBIgIQkhOwhIQRIYN7//5KQIL3qOOc5z8e3nXO+5f1/zpufwWAyvUIjvX18uTxvBpfHcHNj0ML28PD05Lqh6cZiMqlONpvN9fT08fP34vEwSk1iurkFJaUlJCaGx8YzQmcx2Vx0slgsHx9fX/8AHg/uWAza2JPL4Xj7MXyC3Xm+PC9Pxk+JB4vFCwjmTJuOIEwmVuOGsJ5YCdfTy8cPhZ+fX3R0NDXV3d3dw8ODiVm0+Pj4TJs2jcvlcthsdPr7+8fGxnp7e2MI9UB/f8q7h0dYWBiDLJLD4bBY7m4sbI8Jy4iICHgi7gICAmbOnAlfqMMLNWQP86+LzQX+5OXlFRUVpaenzZkzJz8/PysrKzExEfWVK1dmZGQsXLgwMzMzPT0dlXxasFLbhiFYDKampKQkJCTAEpPQhD16kpOTk5KS0tLS0Dl79mysfNasWTg/bPbhlr6TloaGhsbGRlR27NhByvr6elJ3dJJKAy2kyRh/CGGM2sVqtRoHBw3GwQGDcdRJLHeJY2gissk0ZBoyo4Jhs9k8NjZmqw8Pj4xaRkZGocOUjiAMGbUZYxJiDsLePKxUa7t7pTChPA6Z+xQqjW5ApdUpVFrUMGqxWm3Ldhhr9QadbkCgHOCL+n683dYllhpNQ1gbDLQw1uj6FGq1Tq/R6cXSPmzN2diq1Q9gklSlM5jMcISACG4cNAl6entl/Xyh6E5nF1Xvk2MmCc7AgRCVK9V9SrVI0oeYIqncPDyCfWG3oxYrptLbHEMFYdCPCkwmDmxszHYMVMW+q3tc1bH3/070zbOfQY+9f+H4Xyh9/czf7tY37JOJMhjzVjuUuWCNe2alW1qFW/o6t/QKtzS6TK9gpq1jZVAVRspa5/kMXl6tQwOKNsetbZz5yI6o0u0xj+yILq2P/lk9mpGl22NX70QluPhRXv7EfAYnez1REgSR4R5xPLKqiLKzqkgnKh6ZlcyF5Q4Typibs949ozKhrPGVP3/80Rff7Hn5D/6Fm2DGtU/yzKne9OxrZz678vp75wu3PcvKqIQJZczNqYbjkKWPffKP73CA5iEzcNhw6AT2iSGYMRaWr246iJtTa7T8TuHXN+7MWv1zLA2jDDKcsekA0KMzW+RaA+7y7XNfcrJsMRlp6176w1m90dTSLbvVKRJJZGv2HmKklnnmVlORWekVOIwf2wRKvVHUrwaef/HbP2H/jsjbX3ijX6m+I+7vVhtbO7vTNx7Auqghsmc01u0//GObsFeufO/CldlrbAujXGdUBC7e/Nt3Pu2R9bd1SxoOvTXpwKpxQqhg5wnlu3h5NfBFhtnZ6/0WbfQp2IA4s9c2RJZsBwRw7DZj1Lzza5Mrds9e04A2LgOboa+xhks1q2JW7ZxX1eSTvwHnyqVPAZ3EHsbrvfJqgArgAb7hAnjAskOXPkZFzqrCcmAfu2onFgXFtNBlWxAPQzaQeObW2HFT452/AU22fWPYlFcuOu3AoivotO2ZKPYJYHgX1DLTyoEZRz+JD2DBhkyb2DPxjSPN3PzUuxeuXL3V/svj7wLD2DyBEaZiObsOn7z0/e0PLl4trv8lXBPw2RAWtnzr+cvfDwwYyCP9i9/9L67Xk75nhKo8cKRXJscjjrHmdiF2TlBgQ1j6xv2dIsnFa9cFYhleFkAY245qJoWwD3olsjap6ka3rFPYvaLhV8Q1HTmjMnz51pv8boXO0N6nE0tkTYdPEJAQ11t/9bpSpQF+8eoRiGSptfucEVaNqy/Z9cK3LZ0Spebt8//A3VAboxC2HpsKLq47ePL9L79rvvxDS/2vj09GGDlJXGDc2gYcjzsV1jYD9wTYoMT9Y4FYkQvCgL6UmifnVu3BVTHswCS3BTBFldbjIvAywesJPXANRxPGaEc/sgMYiitrxLMKBYywVAqJWVVYDnrgAlALXfYY7gU9ACWgCeNKGCcCemWNWDM0fm1jQnljZMk2rJydTY36LtrIy63BzZM3EalwsgHP3Fpu3gZewSav/I2UFmyk6gUb2Tm1HGhuLRtKVzDNoWhCGR5zl0Ld5ywhykouZiUvcU9e4jGHUvc5ExW6vpTMJ+qSJbgxmSwkbExK3ChhUkrVmSwW6WD+VGrEQF4XFhYaHh4eFBQUEjItKioqODgYyVoIMrPw8BB0BQfBwdRJFTJBJJv22ExSISVGvby8PNjsiQzM2TI1NfXMmTNXvr7y/PPPI4N0noRkce/eJ7+5du3cp58uXbLEJYND6evr88WlL5ELDFP/TMe31e+gjoAWVGpqakcsVqOF+tf51ZWrIaGhNkMyHBcXp1QqRQqtQGXQDQy+dPQVMkxGXzx0CGY/9KqF/dofbt5Jz8gkrm2Rsc7PPv98aNQq0Q+ZRyw7GxqdI1dUVhkGTX1a49DY+I3m5rDw8Mkrz8jMfOe9M9evXz98+HBgYCDpJ0PInZv27Ln4xaUPP/prSUmpy5kh98Td0AfD9vLiTboIOMIl4c58ff3cCTtwyes9PCIjI5GIe9OC2/b19XXkpbhn5KtIVrE1jKJ0SVmxMWTkYbSEhlIggSPH9cIA6TtKpMm4amTtbnYS828SxxmQCsqYmBgk2x70Ph2d9+YImIEkuVMoVKtUb731lr+/32RUTilkP4CqSq0BqvC6xLVXVVc7hu5tvHTZMv2AkS9VIZtsbhVs3rLtvozJ2qaFhJw7f0E3OjY8Nt4t6s3Kzr4vY4d9fHzC0aNHT5w4sWLFigc7+enTpxOE/isCVIDFEdjACzDncTcwHbxqkgCDwBzMUAJYHrTcPe3hgHV8KnnTSejmcbry5qRp/yZeNaWAQIALGYwU0wLfAGWagleN0eKoODf1BrAc8yhFNiwDxkEYT0Sm54yDUcn6laA9yDHVWj1FobQ6Qko04DwGw8jo6ODgIAiSxYl+2CIPmYdByhAEnEul0SrUGhAxK+1YptRINBg0CftAfzRkRS7G2Bh4FhhRu6DnTkdXC18oFEuoN/j4uKhPeUMovdXW0SpRdoqkLst2Pj0npxMiV+tui+QdXSKhQi9VqJCNT208pSg0up4+VbdI0qvUipGNOe+5X6NzVoVGP0lVFAvVK7UDKh3VdJ7MCFr8qLMGFG5C7g2OFFBEys2k6U/3T5rMAEcgSjLCmFUgVfXIWmaUbAtbvmX6ym20Po4UB2m1V261Yz6UYc+L6cR3YTnyPaQ5VL5Ep0ykRJpMJU4YTS1n03nbRBJHUluUOXX/UbbvJQSHV6onC/3rUaKJ4KuaDhbXP+eTX0tS/gljRN7/6ilklzhD8J+szU8z09c5CAoSrQ8ufWswDUkUmmePveNbsIFNUzYGSTyT1u26eqNFq9OTmz75wecT1Cht3VOvnerVmVq7xJ0yZVuvInvzAQZJXElem7ZhP+DVJVMItSbV6PjJT79CcudImf/rzXd7FLpvb7W3dEvaxfKix5+xp8z0hpHj/eb0h3hoRsfHpfqh8gMvEzrIpY0Ltvzn1bYeAFai1J6+8HXo0jpq2w5ShiNBarr7yO+PnPpw1e5fc+1HaEtiMyvz6p5+7tg7TUdORpduJ6n4ROKatO6JOZVNHFBdUPDUMuo86MtD4jp9xePxSEvLGgEVxvw1ztyFGNfCeG5lE0qaPFEZLADEpvkzVgS/SRVPYDSezmxjVu/kEV7FptPxsGVbkIiHLdsasWIrIOVHs0Ny/4GLH41Y8TgwR6BG1ZdtmbhnIAFJORR3xlhYhjSf7USqPOxpMk6YolyoO/Mq6sxothW6bGtSxW6vvFo3CiHrHUMwgDtwxBkl223gm0TKVu0++HVza7e0/9Qnl6J+Vs8iBIWOjKN68X/+IpYrvrvNr9j30sSB0QirAP+8couv0BskMrnaNPLMG39mOZHvnQePDxhNfJkK74MWgTilei9BAY2w1LKCrc8IpApgoL1HotAPnvr4ouOnBhi/+vbHct3g5ea2G11SoUxZuuuFCdqPq8Mxvn/xG4VWf0cgQjZQ99xrzPQKB8LK977Y1tvfr1LLNAOffPV9LB67DDvCqNWnlS+o3nPszN9O//X/9r/yR2wSh8+1nxa4yLYX3vj8m+b3Llwuon7qcEFYLfkZBpeEVVA/stiPFC5wsbNoVBBez6TfFk4Io2n/guq9OGQgAV5QgkVxaYaPztSaJwEvQCiyZDtIFYb8Fm2kEZZVhXcN3KMN2hy8pG5acR0YGZ548oMDKngrAmcYnbakzqeg1pPmmPQ959RQCp6PONkTyib9OeivYaM50V/NsQ8xOOlrnbTMSe/dz2B6cB3KcOfQyrZXpmi6zHcW5NMR4WHQwAB/UKiw0JDgoMCIsNBpQYGoh4eFBvj7MSeTMaKTUiQqAWKj5HC4aPykCUn5kKM3NTUdPvpyaWnp3QnuosLCl48efeqpp8hP+S7sBFTt7NmzOuNQh0xtNJnLysqc2U1ubp5cLif/GT/6+BOQCBdeNX/+fJ1O16/S9PUr8Oo+ffq0C686eFA7Ot4m1zXLDYoBU+GiRS68KjoqqkMgwH/TXin1e8jhI0ecIzc0NBpHxyUqvdpsFUv75s6dO5EEE/tH6+pa2/mIfO7cedAZZ1IQGhZ24uTvb95u5Xd0/Lyx0eVE4MPT0xNlVFRkSkoK9dXESTCEc+d5ey9ISU1MSnab9FM+xhAK1Iq4tH8s4ZLmjBkzEhMTQTajIiMxDZfikrXjUpEgg8tgHgg3km0eLXaC6wuyhdw5IiICdThl0yx6IrUH23LMdt4Oi/6m8gDsyiGOHgeXn9rR3QNAZUlJSU1NTbgz4b0fdsLlcI7+5lXkm4DU1WvXXCB5T16Vk5PbJZYi3bXSVH/fvn0PQMrwGIglsmax8qZMpxsdf/LA0w9Ayjy5nq/+9++MwxaTxfr3S5dnxcU/2LbB1muqq7dv25YYf9+WRIAHYAbYAGBw2i6ouB9GB54PMMbHx+OoATvQtCn27DaVgJSBkYH8BwUFAefkIx5QPGnaw5GyJ+yyx0l2u4pjdC9VNDlMHo6UWWkBw5Ir1PgPDGoEajMyOmJ1FcJ6MKpUa8iXMcgDRB42U+IS2YnajA3SMnYXyUGPEYxwZAS8CBXrpI9d9Gc2E/kEN8k9GcKL2TBoQsqt1Q9AXIyNtAyah8EyDQYQT+pD2IhlbGiUCmIYHGyT9LerTTcUQzKDeXTY7OCS1CLhbNBobBXLReqBH3+43tbWjmgj1jHTiIWMyhQqiUIlAxegPBvJXmzGatBPjVrarxSr9DKplM/n9/T0kBnEuF8ub29rE4t6xGJxf3+/izHiKJVKlVIpl8lwZo5dkVFsBMy0paWlr69PQ8tkYwyo1Orunh6RSKTXU0xlzG4Md1iOQCCQSCRCoVClUtmMp7xSvL3Aa4eHR6hyBC3L1AibfKV0iX+X4OK9sv7uXplYCuxp/z9jBDFT301HQOFBU6Cg6+DPFqvFZDaD9htNJq3eAEYOdo8LdzFGEDDkzp7eW62dN+7wm1v5Lfwui8UKd3iNSuSKPoVK2qcQSfuwEKxkzNkYjwQIe2e3mN8lotap0kCHzMP3eKpsCBs0gfZj3Rb666gzqhHEOjaGMxseoX77MGOOA9tYGxTLFoh6Bd297YJuPHf0Q4o5YziCdqGoo0uMdWE7N1s7vr/VKleqYYkJ93gk4UBn/yYzxbJvtXXcbOXfakXZcbut8w5fcLu9s8VJ2zqFd/g2be0gFWoOlBGcXBCxoDh8QXHkwqUhcwt9Zmf7xuX4xmXbNYfuoXU2rXTFLz7HPyEXxovmF6+bU7h2fnFFYv7q2MyV0WnLYzJXQmMzS2amU/XYrJKZGSugdCfVDEzK95yZzghMyI3FQPryuKyV8XmrkgpWx+U+kpC3KrlgzYzUpaHzisIXLMbSwuYVhc4rpMuiiJQliOwVk8HwSS6MzF4VnrqMm1zMi8nwnJmBXqLc6DQoh1ZUvGdlYcE+s7N8ZmX5xeV4x2YyeAkF4RmlEQuXc5IWe8VmOiyJwh0vllLUAxLysNqAhFyqTMyD8T8BHLDSNbCpyRcAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"single-tenant-vs-multi-tenant-infographic\"\n        title=\"single-tenant-vs-multi-tenant-infographic\"\n        src=\"/static/67c1505912e3d92d7925aebfd59939a8/e5715/single-tenant-vs-multi-tenant-infographic.png\"\n        srcset=\"/static/67c1505912e3d92d7925aebfd59939a8/a6d36/single-tenant-vs-multi-tenant-infographic.png 650w,\n/static/67c1505912e3d92d7925aebfd59939a8/e5715/single-tenant-vs-multi-tenant-infographic.png 768w,\n/static/67c1505912e3d92d7925aebfd59939a8/4fa52/single-tenant-vs-multi-tenant-infographic.png 1241w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span> </p>\n<p>Contact us for your personalized deployment requirements.</p>\n<p><a href=\"https://www.loginradius.com/book-a-demo/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABdElEQVQY002RO0/CUBzFG6PtbZWHCAmRmBB5P8vDII9SSC0omog4oAEGjZMO6OKEuLjoJ2Fx0cSBwUQnXZxcHPwux38LJA7nNvfec8+5v1tOCCiwpbbhye2BxbYgBMtgIRVioDRRsARGXxZUzLlEHmehBaesQ4rrEMPViYf2DR9nDGKkChbVICVqsMt1WJI1sHCFwhUsUIFohJH49TxECvRUjhDW2mAbB5iP6hB8hUkhiRPN5KIZYJdrsEYrcCSpmQqMm6/m9ylUhSulY7N5ivROB3L9GOlGF3Ktbc4zuz341UPw/uIk0ESbBjoSGlYIx8BfzjSwVmyCEYEUUmCPa3Bnd+hwC75yC95S05SxbolU/iEbOCFCpDexEfIioTNCNd6Tp6IlMnNuGeeDe3z//OLx5RWj5zFGT2O8fXxh/P4Ja6w6vSEFCnTIlW2YiDzhzX7ATFKojDlvjpBPcDF4QPdyiG5/iE7/BmfXd+hd3VKpCoG8fzxWw2+c+yTpAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"LoginRadius Book a Demo\"\n        title=\"LoginRadius Book a Demo\"\n        src=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png\"\n        srcset=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/a6d36/book-a-demo-loginradius.png 650w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png 768w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/63ff0/book-a-demo-loginradius.png 2887w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></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":"February 26, 2021","updated_date":null,"description":"A single-tenant cloud runs on dedicated infrastructure, while a multi-tenant cloud is a single cloud infrastructure built to serve multiple businesses. Check out the infographic by LoginRadius to understand the difference between the two and find out which is the right solution for your business.","title":"Understanding the Difference Between Single-Tenant and Multi-Tenant Cloud [Infographic]","tags":["cloud computing","single tenant","multi tenant"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.6,"src":"/static/c6c9407ec1dcb981767278f4e5a53674/14b42/single-tenant-vs-multi-tenant-cover.jpg","srcSet":"/static/c6c9407ec1dcb981767278f4e5a53674/f836f/single-tenant-vs-multi-tenant-cover.jpg 200w,\n/static/c6c9407ec1dcb981767278f4e5a53674/2244e/single-tenant-vs-multi-tenant-cover.jpg 400w,\n/static/c6c9407ec1dcb981767278f4e5a53674/14b42/single-tenant-vs-multi-tenant-cover.jpg 800w,\n/static/c6c9407ec1dcb981767278f4e5a53674/16310/single-tenant-vs-multi-tenant-cover.jpg 1024w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.jpg"}}}},{"node":{"excerpt":"Introduction Have you heard of phone login lately? We will get to it soon.  With all the business going online in this digital era, there is…","fields":{"slug":"/identity/what-is-phone-login/"},"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>Have you heard of phone login lately? We will get to it soon. </p>\n<p>With all the business going online in this digital era, there is probably a possibility that there is not even a single person on this planet who enjoys filling out registration forms. </p>\n<p>Today, a single consumer interacts with various apps/websites, which require them to log in or register before allowing them to use their services. There are relatively high chances of forgetting the username and the associated password while trying to log in.</p>\n<p>In this type of process, consumers may become frustrated and completely give up the sign-up process as it asks for a lot of information. Ultimately, businesses end up with lower consumer growth rates.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 50%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAKABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIEAf/EABYBAQEBAAAAAAAAAAAAAAAAAAACA//aAAwDAQACEAMQAAABhaN7zwA//8QAGhAAAgIDAAAAAAAAAAAAAAAAAQIAAxARMf/aAAgBAQABBQKlQS+oexsf/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGhAAAAcAAAAAAAAAAAAAAAAAAAEgISIxQf/aAAgBAQAGPwKTEMtP/8QAHRAAAgIBBQAAAAAAAAAAAAAAAREAITEQQVFhcf/aAAgBAQABPyECa3NOWHLkN4zUutMx5GSASZ//2gAMAwEAAgADAAAAELz/AP/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EAB0QAAIDAAIDAAAAAAAAAAAAAAERACExEEFRkbH/2gAIAQEAAT8QQHq0HwHLgG8tg6qaDXaJcF63yMAJIZJOz//Z'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"PhoneLogin_overview\"\n        title=\"PhoneLogin_overview\"\n        src=\"/static/8ca3a907b397665830aeb5464c7d341f/212bf/PhoneLogin_overview.jpg\"\n        srcset=\"/static/8ca3a907b397665830aeb5464c7d341f/6aca1/PhoneLogin_overview.jpg 650w,\n/static/8ca3a907b397665830aeb5464c7d341f/212bf/PhoneLogin_overview.jpg 768w,\n/static/8ca3a907b397665830aeb5464c7d341f/b17f8/PhoneLogin_overview.jpg 1600w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>But if the sign-up and login process is done right, it can trigger the retention of lots of new consumers. If done in an improper method, it may backfire and can have the exact opposite effect. </p>\n<p>So now the question is, what is the right process? How do we tame this beast? </p>\n<p>We tame it by following the best consumer experience practices and using the right analysis and optimization techniques.</p>\n<p>You might think that we can also implement a social login method like GitHub, Facebook, Google, etc., to skip traditional registration/login. </p>\n<p>Yes, you are right, we can do that! But there is a slight problem that sometimes consumers do not want their data to be shared with app developers. </p>\n<p>This is where <strong>Phone Login</strong> comes to the rescue.</p>\n<h2 id=\"introduction-to-phone-login\" style=\"position:relative;\"><a href=\"#introduction-to-phone-login\" aria-label=\"introduction to phone login 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 to Phone Login</h2>\n<p>In the fast-paced digital landscape, the convenience and security of consumer interactions are paramount. Phone Login emerges as a powerful tool designed to streamline the often cumbersome processes of registration and login. As consumers juggle multiple apps and websites, each requiring their own set of credentials, the need for a more straightforward solution becomes evident. Phone Login steps in to simplify this process, allowing users to swiftly register or access their accounts using nothing but their mobile phones.</p>\n<p>Gone are the days of lengthy registration forms and forgotten passwords. With Phone Login, users input their phone number, receive a one-time password (OTP) on their mobile device, and gain instant access. This not only improves the user experience but also significantly reduces friction in the onboarding process for businesses.</p>\n<h2 id=\"crucial-considerations-in-phone-login-implementation\" style=\"position:relative;\"><a href=\"#crucial-considerations-in-phone-login-implementation\" aria-label=\"crucial considerations in phone login implementation 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>Crucial Considerations in Phone Login Implementation</h2>\n<h3 id=\"abuse-scenario-vigilance\" style=\"position:relative;\"><a href=\"#abuse-scenario-vigilance\" aria-label=\"abuse scenario vigilance 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>Abuse Scenario Vigilance</h3>\n<p>One crucial consideration in Phone Login implementation is being vigilant against abuse scenarios. The login endpoint could be vulnerable to attacks where repeated requests are sent with similar phone numbers, potentially slowing down the login page. To mitigate this risk, implementing checks on the frequency of requests from a single phone number can help maintain the system's integrity.</p>\n<h3 id=\"handling-phone-number-alterations\" style=\"position:relative;\"><a href=\"#handling-phone-number-alterations\" aria-label=\"handling phone number alterations 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>Handling Phone Number Alterations</h3>\n<p>Another important aspect to consider is how to handle scenarios where a user alters their phone number. To address this, a verification process can be implemented where the new number is verified before updating it in the user's account. This ensures that user information remains accurate and secure, preventing unauthorized access.</p>\n<h3 id=\"session-management-and-security\" style=\"position:relative;\"><a href=\"#session-management-and-security\" aria-label=\"session management and 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>Session Management and Security</h3>\n<p>Effective session management is essential for <a href=\"https://www.loginradius.com/blog/identity/security-ux-can-coexist/\">security and user convenience</a>. Generated tokens play a vital role in this aspect, allowing for the expiration of sessions and the logging out of idle accounts. When a user enters the OTP received on their phone, the backend system verifies the token to ensure a secure login process.</p>\n<h3 id=\"telephony-api-integration\" style=\"position:relative;\"><a href=\"#telephony-api-integration\" aria-label=\"telephony api integration 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>Telephony API Integration</h3>\n<p>To send OTPs to users' phones, integration with a telephony API is necessary. This API enables the system to send SMS messages with the OTP code for user verification. Choosing a reliable telephony API provider, such as LoginRadius, ensures the seamless delivery of OTPs to users, enhancing the overall user experience.</p>\n<h3 id=\"consumer-data-privacy\" style=\"position:relative;\"><a href=\"#consumer-data-privacy\" aria-label=\"consumer data privacy 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>Consumer Data Privacy</h3>\n<p>Lastly, ensuring consumer data privacy is paramount. Phone Login should comply with data protection regulations to safeguard user information. This includes securely storing phone numbers, encrypting sensitive data, and obtaining user consent for using their phone numbers for verification purposes.</p>\n<h2 id=\"what-is-phone-login\" style=\"position:relative;\"><a href=\"#what-is-phone-login\" aria-label=\"what is phone login 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 Phone Login</h2>\n<p>Phone Login is a compelling and handy feature designed to enhance consumer experience and ease the process of login and registration.</p>\n<p>It is the process of registering or accessing a user's account by using a phone number. The user enters their phone number as username and receives a one-time password (OTP) on their mobile phone, entering which they can log in.</p>\n<p>It eliminates the hassle of filling lengthy registration forms and creating new passwords and usernames, thereby allowing users to quickly login or register just by using their mobile phones.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 66.61538461538463%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAUBAgME/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAL/2gAMAwEAAhADEAAAAY6VjGpqZh//xAAaEAEAAgMBAAAAAAAAAAAAAAABAAIDEiIx/9oACAEBAAEFAm4XMst7ie03q8z/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAYEAEBAQEBAAAAAAAAAAAAAAABEQAQYf/aAAgBAQAGPwL3RE7K6G//xAAaEAACAwEBAAAAAAAAAAAAAAABEQAhUUEx/9oACAEBAAE/IUZvAuO9Nogy4mL2WEAfDLuAn//aAAwDAQACAAMAAAAQkM//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPxAZ/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQIBAT8QSf/EABsQAAIDAQEBAAAAAAAAAAAAAAERACExQVFh/9oACAEBAAE/EL6AQA7fIIgwjyj7eQKDbG5E14Gg5ACYo6Z//9k='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"PhoneLogin\"\n        title=\"PhoneLogin\"\n        src=\"/static/8626ee3b4671d36b271a302cee89c73c/212bf/PhoneLogin.jpg\"\n        srcset=\"/static/8626ee3b4671d36b271a302cee89c73c/6aca1/PhoneLogin.jpg 650w,\n/static/8626ee3b4671d36b271a302cee89c73c/212bf/PhoneLogin.jpg 768w,\n/static/8626ee3b4671d36b271a302cee89c73c/27023/PhoneLogin.jpg 5032w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h2 id=\"why-should-businesses-use-phone-login\" style=\"position:relative;\"><a href=\"#why-should-businesses-use-phone-login\" aria-label=\"why should businesses use phone login 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 Should Businesses Use Phone Login</h2>\n<p>As mentioned earlier, <a href=\"https://www.loginradius.com/resource/loginradius-ciam-phone-authentication/\">phone login simplifies the login and registrations process</a>. By using this feature, app developers and business owners can show their consumers that they understand what annoys them— and that they value their time. A rich consumer experience has always been seen providing a more significant consumer growth rate.</p>\n<p>This feature makes it easy for your consumers to register and log in within seconds using their phone numbers. To sign-in, they have to enter their phone number and the code they received (usually a one-time password ). </p>\n<p>And it should not be tough to understand that consumers will always tend to move in a comfortable and less time-consuming path.</p>\n<h2 id=\"benefits-of-phone-login-for-businesses\" style=\"position:relative;\"><a href=\"#benefits-of-phone-login-for-businesses\" aria-label=\"benefits of phone login for businesses 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 Phone Login for Businesses</h2>\n<p><a href=\"https://www.loginradius.com/phone-login/\">Phone Login</a> becomes extremely useful for those businesses which rely heavily on consumer's phone numbers. For example, food delivery companies, cabs, and more. Other than these the following are a few benefits that will help any business.</p>\n<ul>\n<li>Easy and hassle-free registration for consumers as it skips the filling of lengthy forms.</li>\n<li>Consumers can register and login directly with their phone numbers.</li>\n<li>It avoids spam consumer registration on your website.</li>\n<li>It saves consumers time. A lot of it. By skipping traditional registration form filling.</li>\n<li>Consumers can also login without remembering their user ID and Password.</li>\n<li>Verify consumer mobile number by SMS OTP.</li>\n<li>All verified consumers are genuine, and hence it prevents fake orders.</li>\n<li>Order processing is fast because consumer identity is already verified by Phone Number and One-time password (OTP).</li>\n<li>As order processing is quick, the consumer trusts the merchant.</li>\n<li>Consumers can be notified quickly through mobile, even if they do not have internet or email access, and notifications are always read.</li>\n<li>Merchants shall reach consumers with their promotions and offers quickly through phone number</li>\n</ul>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 52.15384615384615%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAKABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAwAE/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgAB/9oADAMBAAIQAxAAAAEEwiw9nrP/xAAaEAEAAgMBAAAAAAAAAAAAAAABAAIDESEx/9oACAEBAAEFAsSS9xdwePs//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGBAAAgMAAAAAAAAAAAAAAAAAAAERICH/2gAIAQEABj8CIZtP/8QAGRABAAMBAQAAAAAAAAAAAAAAAQARMSEQ/9oACAEBAAE/IROxLnZRKiivsQHWaef/2gAMAwEAAgADAAAAEFM//8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQMBAT8Qqv/EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/EIj/xAAcEAEBAAICAwAAAAAAAAAAAAABEQAhEDFBodH/2gAIAQEAAT8QEUY3TZAzx9fWbiAgbdZKC0dONUVt74//2Q=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Benifits_of_phoneLogin_in_business\"\n        title=\"Benifits_of_phoneLogin_in_business\"\n        src=\"/static/a920662c97f4ec8fd8d0839b5edf8a46/212bf/Benifits_of_phoneLogin_in_business.jpg\"\n        srcset=\"/static/a920662c97f4ec8fd8d0839b5edf8a46/6aca1/Benifits_of_phoneLogin_in_business.jpg 650w,\n/static/a920662c97f4ec8fd8d0839b5edf8a46/212bf/Benifits_of_phoneLogin_in_business.jpg 768w,\n/static/a920662c97f4ec8fd8d0839b5edf8a46/3acf0/Benifits_of_phoneLogin_in_business.jpg 2000w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>Looking at the above benefits, business owners can easily enhance their business strategies and ultimately increase their consumer growth. You've got everything you need to communicate with your end-users in the most concrete and straightforward method.</p>\n<h2 id=\"how-to-implement-phone-login\" style=\"position:relative;\"><a href=\"#how-to-implement-phone-login\" aria-label=\"how to implement phone login 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 Implement Phone Login</h2>\n<p>Now that you have read all the advantages of using a phone login and you are planning to implement it for your business, too, your first question will be, \"How can I implement this thing on my website.\" Right ??</p>\n<p>Don't worry, we've got you covered.</p>\n<p><a href=\"https://www.loginradius.com/resource/loginradius-ciam-phone-authentication/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABjklEQVQY0z2QTWsTURSGB1uaZBKqxbS10YlJY2yMjdpJdMaJSZi0+Y6CFSq2VQR3BmI3XTXBhav8EZEuCi2Cn6AiiG7cuRFtK6IuG1ri9nHmkvHCy7n33HOf854reU5fwZY8lcEby+CLZa2YRbZz/TtH7lMG8tk8fv06R8/P4pmewx3L4Y6mcfdrJAc2mjAZiaXxRTSGowaBZImxCwWOTJvigYBa0WtBguYt4nM3kbV5XImiyIuGVpScTUiroFcXUQsLhFJFXJNp5Hiew32grdGZIicv15lQi4xZOpEqE9RqBC5WhCkBdLqH9SoJc55z+RtMGTWOqSWU3AL+mZIY1Rl7PFm2AFUUrY6iX2XCgg3Hc/+nEA4HwzrrT1/T7Xb5tr3D7o+f/Pr9h4PeXwpLDQ6FLiEdV7m/1uHL1+9sPH/D480XPNl6ybuPn3n1/pP4mqGIgWRbHQhrPHv7AXvt7XXZ3z+g1+uJc+VOE0lJMTipo127S6PVYflBm8Vmi6Vmm3urj7i98hDfmSwuy+U/WlHeyOc+VIYAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"phone-authentication\"\n        title=\"phone-authentication\"\n        src=\"/static/e803561322c0f2e7a0423cf87d0771b2/e5715/phone-authentication.png\"\n        srcset=\"/static/e803561322c0f2e7a0423cf87d0771b2/a6d36/phone-authentication.png 650w,\n/static/e803561322c0f2e7a0423cf87d0771b2/e5715/phone-authentication.png 768w,\n/static/e803561322c0f2e7a0423cf87d0771b2/63ff0/phone-authentication.png 2887w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></a></p>\n<p>This whole implementation is divided into two parts.\nThe user submits the phone number to the website's backend via GUI and obtains a token.\nUsers submit the obtained token in a web field, where it is verified. Upon successful verification, the user is logged into the website.</p>\n<p>Let's start with the first scenario where the user submits the phone number to the App backend through GUI. After submitting the number, they land on a new page which asks for a token. The application backend verifies the input number and combines it with extra information such as IP address, geographical location, and device information.</p>\n<p>This wholesome mixture of information is now submitted to the User service, which generates a token, and then they associate it with these requests. </p>\n<p>Here is an important aspect that you need to keep in mind: <strong>The generation of a token</strong>.</p>\n<p>See, this generated token will help us in many ways, and they are essential as well. These tokens can be used to expire the ongoing sessions or logging out of an idle account. And many more things like this, which increases the security of your user's account.</p>\n<p>Now our next challenge is how do we send OTP to the consumers. This will be done by your User Service, which will call a telephony API and will send the OTP to the consumers' phone number as an SMS. Many companies provide this functionality, and LoginRadius is one of them.</p>\n<p>On receiving the One-time password in SMS, the user will now enter the OTP in the form. Once again, the application backend comes into action and verifies the token which was sent by User Service.</p>\n<p>If the token is exactly the same as what was sent, the user is logged into the account. Simple!</p>\n<h2 id=\"what-things-to-take-care-of-while-implementing-phone-login\" style=\"position:relative;\"><a href=\"#what-things-to-take-care-of-while-implementing-phone-login\" aria-label=\"what things to take care of while implementing phone login 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 Things to Take Care of While Implementing Phone Login</h2>\n<p>Now that you know how to implement phone login, you must be excited to implement it for your website too. But there are a few things we need to keep in mind while implementing this feature.</p>\n<ul>\n<li>Be careful and vigilant about the multiple abuse scenarios where the login endpoint can get attacked by a code that keeps sending a request with a similar phone number. This can slow down your login page. To handle this, you can implement a check on how many times a consumer (phone number) can send requests.</li>\n<li>Another case is to consider the scenario if a consumer alters the phone number. You can use a similar method of first verifying the number and then updating it in the consumer’s account to handle this.\n<br /><br /></li>\n</ul>\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 article, we talked about applying a simple approach of using Phone Login on the websites and how it will enhance the businesses. This feature removes the consumer's mental load to remember each password created on different websites. Finally, before implementing any functionality on your website, analyze and consider the pros and cons from every possible angle. </p>\n<p>Cheers!</p>\n<p><a href=\"https://www.loginradius.com/book-a-demo/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABdElEQVQY002RO0/CUBzFG6PtbZWHCAmRmBB5P8vDII9SSC0omog4oAEGjZMO6OKEuLjoJ2Fx0cSBwUQnXZxcHPwux38LJA7nNvfec8+5v1tOCCiwpbbhye2BxbYgBMtgIRVioDRRsARGXxZUzLlEHmehBaesQ4rrEMPViYf2DR9nDGKkChbVICVqsMt1WJI1sHCFwhUsUIFohJH49TxECvRUjhDW2mAbB5iP6hB8hUkhiRPN5KIZYJdrsEYrcCSpmQqMm6/m9ylUhSulY7N5ivROB3L9GOlGF3Ktbc4zuz341UPw/uIk0ESbBjoSGlYIx8BfzjSwVmyCEYEUUmCPa3Bnd+hwC75yC95S05SxbolU/iEbOCFCpDexEfIioTNCNd6Tp6IlMnNuGeeDe3z//OLx5RWj5zFGT2O8fXxh/P4Ja6w6vSEFCnTIlW2YiDzhzX7ATFKojDlvjpBPcDF4QPdyiG5/iE7/BmfXd+hd3VKpCoG8fzxWw2+c+yTpAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"book-a-demo-loginradius\"\n        title=\"book-a-demo-loginradius\"\n        src=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png\"\n        srcset=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/a6d36/book-a-demo-loginradius.png 650w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png 768w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/63ff0/book-a-demo-loginradius.png 2887w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></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":"February 26, 2021","updated_date":null,"description":"Phone Login is a compelling and handy feature designed to enhance consumer experience and ease the process of login and registration. It eliminates the hassle of filling lengthy registration forms and creating new passwords and usernames, thereby allowing consumers to quickly login or register just by using their mobile phones.","title":"What is Phone Login","tags":["phone login","authentication","cx"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.6,"src":"/static/21e6146fafaa9d0ef6e6b2ffc507029f/14b42/PhoneLogin_cover_pic.jpg","srcSet":"/static/21e6146fafaa9d0ef6e6b2ffc507029f/f836f/PhoneLogin_cover_pic.jpg 200w,\n/static/21e6146fafaa9d0ef6e6b2ffc507029f/2244e/PhoneLogin_cover_pic.jpg 400w,\n/static/21e6146fafaa9d0ef6e6b2ffc507029f/14b42/PhoneLogin_cover_pic.jpg 800w,\n/static/21e6146fafaa9d0ef6e6b2ffc507029f/47498/PhoneLogin_cover_pic.jpg 1200w,\n/static/21e6146fafaa9d0ef6e6b2ffc507029f/0e329/PhoneLogin_cover_pic.jpg 1600w,\n/static/21e6146fafaa9d0ef6e6b2ffc507029f/d8255/PhoneLogin_cover_pic.jpg 1920w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Ashish Kumar Yadav","github":null,"avatar":null}}}},{"node":{"excerpt":"A list is a set of index-accessible objects that provides functionality for searching, sorting, and manipulating list items. C# List class…","fields":{"slug":"/engineering/list-csharp/"},"html":"<p>A list is a set of index-accessible objects that provides functionality for searching, sorting, and manipulating list items. C# List class represents a collection of strongly typed objects that can be accessed by using the index. In this article, we learn how to work with lists in C# using the C# List class to add, remove, and search items in a collection of objects using List class methods and properties.</p>\n<h2 id=\"what-is-list-in-c\" style=\"position:relative;\"><a href=\"#what-is-list-in-c\" aria-label=\"what is list in c 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 List in C#?</h2>\n<p><code>List&#x3C;T></code> class in C# cotains a strongly typed list of objects. It provides functionality to create a list of objects, add list items, search, sort and manipulate list items. In <code>List&#x3C;T></code>, T is the type of objects like int, string, or any user-defined object.</p>\n<p><code>List&#x3C;T></code> is required when we have multiple items with the same object, like data of student's marks or data of various subject's names (string). In that case, we can use <code>List&#x3C;T></code> to maintain that data into a list.</p>\n<p><code>List&#x3C;T></code> comes under the <code>System.Collection.Generic</code> namespace and the index start from <code>0</code>.</p>\n<h2 id=\"how-to-create-a-list\" style=\"position:relative;\"><a href=\"#how-to-create-a-list\" aria-label=\"how to create a list 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 Create a List?</h2>\n<p>We can create a list by calling the <code>List&#x3C;T></code> constructor; It takes an argument of <code>int</code> type that is the list's capacity. If we do not define the capacity, then the list size will be dynamic and every time an element is added, the list size is increased. The list can be created using the below syntax.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk10\">List</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt; </span><span class=\"mtk12\">lst</span><span class=\"mtk1\">=</span><span class=\"mtk4\">new</span><span class=\"mtk1\"> </span><span class=\"mtk10\">List</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt;(); </span><span class=\"mtk3\">// list with dynamic capacity</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk10\">List</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt; </span><span class=\"mtk12\">lstCapacity</span><span class=\"mtk1\">=</span><span class=\"mtk4\">new</span><span class=\"mtk1\"> </span><span class=\"mtk10\">List</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt;(</span><span class=\"mtk7\">10</span><span class=\"mtk1\">); </span><span class=\"mtk3\">// list with capacity of 10 elements</span></span></code></pre>\n<p>As we have discussed above, Here T is the type of object for which we have to create the list. The type is <code>int</code> in the above code, which means we can store the <code>int</code> type of variable's value.</p>\n<p><strong>Note</strong>: If we have created the list using the capacity value and when more than the defined capacity elements are added, the list size will automatically increase.</p>\n<h2 id=\"add-elements-into-a-list\" style=\"position:relative;\"><a href=\"#add-elements-into-a-list\" aria-label=\"add elements into a list 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>Add elements into a list</h2>\n<p>We can add elements directly into when we have created a list or add elements after creating a list. I will discuss both methods here.</p>\n<ol>\n<li><strong>Create list</strong></li>\n</ol>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk10\">List</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt; </span><span class=\"mtk12\">lst</span><span class=\"mtk1\"> = </span><span class=\"mtk4\">new</span><span class=\"mtk1\"> </span><span class=\"mtk10\">List</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk7\">1</span><span class=\"mtk1\">,</span><span class=\"mtk7\">2</span><span class=\"mtk1\">,</span><span class=\"mtk7\">3</span><span class=\"mtk1\">,</span><span class=\"mtk7\">4</span><span class=\"mtk1\">,</span><span class=\"mtk7\">5</span><span class=\"mtk1\">,</span><span class=\"mtk7\">6</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">};</span></span></code></pre>\n<ol start=\"2\">\n<li><strong>Add items after creating list</strong></li>\n</ol>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk10\">List</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt; </span><span class=\"mtk12\">lst</span><span class=\"mtk1\"> = </span><span class=\"mtk4\">new</span><span class=\"mtk1\"> </span><span class=\"mtk10\">List</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt;();</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk11\">Add</span><span class=\"mtk1\">(</span><span class=\"mtk7\">1</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk11\">Add</span><span class=\"mtk1\">(</span><span class=\"mtk7\">2</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk11\">Add</span><span class=\"mtk1\">(</span><span class=\"mtk7\">3</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk11\">Add</span><span class=\"mtk1\">(</span><span class=\"mtk7\">4</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk11\">Add</span><span class=\"mtk1\">(</span><span class=\"mtk7\">5</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk11\">Add</span><span class=\"mtk1\">(</span><span class=\"mtk7\">3</span><span class=\"mtk1\">);</span></span></code></pre>\n<h2 id=\"properties-of-a-list\" style=\"position:relative;\"><a href=\"#properties-of-a-list\" aria-label=\"properties of a list 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>Properties of a list</h2>\n<p>The list has mainly two properties.</p>\n<ol>\n<li><strong>Capacity</strong>- This property tells the capacity of a list, which means how many elements a list can contain.</li>\n</ol>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"3\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk10\">List</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt; </span><span class=\"mtk12\">lst</span><span class=\"mtk1\"> = </span><span class=\"mtk4\">new</span><span class=\"mtk1\"> </span><span class=\"mtk10\">List</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt;();</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk12\">Capacity</span><span class=\"mtk1\">); </span><span class=\"mtk3\">//Prints 0-- Default</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk10\">List</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt; </span><span class=\"mtk12\">lst1</span><span class=\"mtk1\"> = </span><span class=\"mtk4\">new</span><span class=\"mtk1\"> </span><span class=\"mtk10\">List</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt;(</span><span class=\"mtk7\">5</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk12\">lst1</span><span class=\"mtk1\">.</span><span class=\"mtk12\">Capacity</span><span class=\"mtk1\">); </span><span class=\"mtk3\">// Prints 5</span></span></code></pre>\n<ol start=\"2\">\n<li><strong>Count</strong>- This property tells that how many elements are there in a list</li>\n</ol>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"4\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk10\">List</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt; </span><span class=\"mtk12\">lst</span><span class=\"mtk1\"> = </span><span class=\"mtk4\">new</span><span class=\"mtk1\"> </span><span class=\"mtk10\">List</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt;(</span><span class=\"mtk7\">5</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk12\">Count</span><span class=\"mtk1\">); </span><span class=\"mtk3\">// Prints 0</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk11\">Add</span><span class=\"mtk1\">(</span><span class=\"mtk7\">1</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk11\">Add</span><span class=\"mtk1\">(</span><span class=\"mtk7\">2</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk12\">Count</span><span class=\"mtk1\">); </span><span class=\"mtk3\">//Prints 2</span></span></code></pre>\n<h2 id=\"read-all-elements-of-a-list\" style=\"position:relative;\"><a href=\"#read-all-elements-of-a-list\" aria-label=\"read all elements of a list 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>Read all elements of a list</h2>\n<p>To get all the elements of a list, we have to loop through the list. We can use for or foreach loop to get the elements. Below is the code to get all the elements using both the loops and print the element's values.</p>\n<ol>\n<li>\n<h3 id=\"using-a-foreach-loop\" style=\"position:relative;\"><a href=\"#using-a-foreach-loop\" aria-label=\"using a foreach loop 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>Using a foreach loop</h3>\n</li>\n</ol>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"5\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk15\">foreach</span><span class=\"mtk1\"> (</span><span class=\"mtk4\">var</span><span class=\"mtk1\"> </span><span class=\"mtk12\">item</span><span class=\"mtk1\"> </span><span class=\"mtk15\">in</span><span class=\"mtk1\"> </span><span class=\"mtk12\">lst</span><span class=\"mtk1\">)</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk12\">item</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span></code></pre>\n<ol start=\"2\">\n<li>\n<h3 id=\"using-for-loop\" style=\"position:relative;\"><a href=\"#using-for-loop\" aria-label=\"using for loop 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>Using for loop</h3>\n</li>\n</ol>\n<p>In this method, we have to run the loop till the last element of the list. For that, I have used the <strong>Count</strong> property of the list</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"6\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk15\">for</span><span class=\"mtk1\"> (</span><span class=\"mtk4\">int</span><span class=\"mtk1\"> </span><span class=\"mtk12\">i</span><span class=\"mtk1\"> = </span><span class=\"mtk7\">0</span><span class=\"mtk1\">; </span><span class=\"mtk12\">i</span><span class=\"mtk1\"> &lt; </span><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk12\">Count</span><span class=\"mtk1\">; </span><span class=\"mtk12\">i</span><span class=\"mtk1\">++)</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk12\">lst</span><span class=\"mtk1\">[</span><span class=\"mtk12\">i</span><span class=\"mtk1\">]);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span></code></pre>\n<p>Both the methods will give the same output. I am taking the above list example so the result will be</p>\n<p>Output:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"7\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">1</span>\n<span class=\"grvsc-line\">2</span>\n<span class=\"grvsc-line\">3</span>\n<span class=\"grvsc-line\">4</span>\n<span class=\"grvsc-line\">5</span>\n<span class=\"grvsc-line\">3</span></code></pre>\n<h2 id=\"remove-element-from-a-list\" style=\"position:relative;\"><a href=\"#remove-element-from-a-list\" aria-label=\"remove element from a list 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>Remove element from a list</h2>\n<p>To remove items from a list, we can use various list methods.</p>\n<ol>\n<li>Remove(T item)- This method removes the first occurrence of an element from a list. We have to pass the element into this method as a parameter.</li>\n</ol>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"8\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk11\">Remove</span><span class=\"mtk1\">(</span><span class=\"mtk7\">3</span><span class=\"mtk1\">); </span><span class=\"mtk3\">// Removes the fist occurance of element 3</span></span></code></pre>\n<ol start=\"2\">\n<li>RemoveAll(<code>Predicate&#x3C;T></code> match)- This method removes all elements from a list that matches the condition defined by the specified predicate. We have to pass the predicate as a parameter.</li>\n</ol>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"9\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk11\">RemoveAll</span><span class=\"mtk1\">(</span><span class=\"mtk12\">x</span><span class=\"mtk1\">=&gt;</span><span class=\"mtk12\">x</span><span class=\"mtk1\">==</span><span class=\"mtk7\">3</span><span class=\"mtk1\">); </span><span class=\"mtk3\">// Removes all the elements 3</span></span></code></pre>\n<ol start=\"3\">\n<li>RemoveAt(int index)- This method removes the element from the given index. We have to pass the index as a parameter.</li>\n</ol>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"10\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk11\">RemoveAt</span><span class=\"mtk1\">(</span><span class=\"mtk7\">0</span><span class=\"mtk1\">); </span><span class=\"mtk3\">// Removes 0th index element from a list</span></span></code></pre>\n<ol start=\"4\">\n<li>RemoveRange(int index, int count)- This method removes the element from the given index to the specified count. We have to pass the starting index and count as a parameter.</li>\n</ol>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"11\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk11\">RemoveRange</span><span class=\"mtk1\">(</span><span class=\"mtk7\">0</span><span class=\"mtk1\">,</span><span class=\"mtk7\">2</span><span class=\"mtk1\">); </span><span class=\"mtk3\">// Removes element 1,2 because the starting index is 0 and count is 2</span></span></code></pre>\n<ol start=\"5\">\n<li>Clear()- This method clears all the elements from a list.</li>\n</ol>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"12\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk12\">lst</span><span class=\"mtk1\">.</span><span class=\"mtk11\">Clear</span><span class=\"mtk1\">(); </span><span class=\"mtk3\">// Removes all elements from a list</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 article, we have discussed the basics of <code>List&#x3C;T></code>, properties, and some methods. The main advantage of using the list is that it is faster and it is more friendly because it gives us many inbuilt methods to use and do the manipulation according to ourselves. If you want to learn more about C# here is an article written by me on <a href=\"https://www.loginradius.com/blog/engineering/nullable-csharp/\">How to Work with Nullable Types in C#</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 .mtk10 { color: #4EC9B0; }\n  .dark-default-dark .mtk1 { color: #D4D4D4; }\n  .dark-default-dark .mtk4 { color: #569CD6; }\n  .dark-default-dark .mtk12 { color: #9CDCFE; }\n  .dark-default-dark .mtk3 { color: #6A9955; }\n  .dark-default-dark .mtk7 { color: #B5CEA8; }\n  .dark-default-dark .mtk11 { color: #DCDCAA; }\n  .dark-default-dark .mtk15 { color: #C586C0; }\n</style>","frontmatter":{"date":"February 25, 2021","updated_date":null,"description":"In this article, we will learn how to create lists in C# also how to use the C# list class to add, remove, and search items in a collection of objects.","title":"How to Create List in C#","tags":["C#","List"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.3333333333333333,"src":"/static/90961274d154a2d133945ce7dcb461ed/14b42/coverimage.jpg","srcSet":"/static/90961274d154a2d133945ce7dcb461ed/f836f/coverimage.jpg 200w,\n/static/90961274d154a2d133945ce7dcb461ed/2244e/coverimage.jpg 400w,\n/static/90961274d154a2d133945ce7dcb461ed/14b42/coverimage.jpg 800w,\n/static/90961274d154a2d133945ce7dcb461ed/47498/coverimage.jpg 1200w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Hemant Manwani","github":"hemant404","avatar":null}}}},{"node":{"excerpt":"Did you know that in only a few minutes, a DDoS attack can bring your website down? Hackers are targeting your site and overloading your…","fields":{"slug":"/engineering/how-to-mitigate-ddos-attack/"},"html":"<p>Did you know that in only a few minutes, a DDoS attack can bring your website down? Hackers are targeting your site and overloading your network and your server. Your website becomes unresponsive, unavailable and can even go entirely offline. We'll show you how DDoS attacks can be avoided.</p>\n<h2 id=\"what-is-ddos-attack\" style=\"position:relative;\"><a href=\"#what-is-ddos-attack\" aria-label=\"what is ddos attack 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 DDoS Attack?</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 75.07692307692308%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAIAAABr+ngCAAAACXBIWXMAAC4jAAAuIwF4pT92AAABv0lEQVQoz51STW8TMRDdn8Mf5F4E9IiQuENvFAUOFVKFhIJERSkQ8aE2gTTdkpbQJO1+eNfrddZjj91Zb1oWgWjFk7Uaj/xm5r3ZwDlnPVwLjLEsyzjnURSlaUpXAGg/MFi/D9qpyxJDj9Fo1Ov1+v3+YDAQQrQfNAjAYMILOgrRXYWGPM/lve6uBB3M4uTOWmfl0dP98Q+llPElELHRgh41x9PQf199Pb5xu5NJFZyxfHV989bjzXAylWVZFMW/OpNaVX05mt59/o5q1po/z7KdSVrbYExDts611aG3R2mzAOJW1lAkloYhKISKAm1MLgrjHBhTLhaV0pQ8Hcev1z9R8ORjuB3OHGqyWtu6QWBrJU6jRd8u/j6eDr6JhMVJUoiSUvsfxhv3txyatZ1hdy8EKS5n+n1VAIZlNKUBjRfLzBk/DicU/IxSXkoDKirkw7dDklCvKpdV94idlOAsQsb/tp7aeVAKNAnBl7uHS7fZQjFZPTtkWwenjmfqD3Ibzar6J/HNzhuSHkSi2p6KB3vJ+3DuBEdz9a9Cc1RFTvsPhILuwezFaC5rmc66awF/GWZxebXX5F64bX03dP+Dc+xpXNp+PEdoAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"What is a DDoS attack?\"\n        title=\"What is a DDoS attack?\"\n        src=\"/static/e82159853c0c436c7ad2b509619a9a01/e5715/What-is-a-DDoS-attack.png\"\n        srcset=\"/static/e82159853c0c436c7ad2b509619a9a01/a6d36/What-is-a-DDoS-attack.png 650w,\n/static/e82159853c0c436c7ad2b509619a9a01/e5715/What-is-a-DDoS-attack.png 768w,\n/static/e82159853c0c436c7ad2b509619a9a01/2bef9/What-is-a-DDoS-attack.png 1024w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>A Distributed Denial of Service (DDoS) is a targeted <a href=\"https://www.loginradius.com/blog/identity/2019/10/cybersecurity-attacks-business/\">cyber attack on a website</a> or device where a malicious attacker's flood of traffic is sent from single or multiple sources. The primary purpose of DDoS is to make a machine or network resource unavailable to its genuine users by temporarily or disrupting the services of a host connected to the Internet. If we do not use appropriate security practices or tools, it makes your application into a non-functional situation.</p>\n<p>The malicious attacker uses multiple compromised computer systems or devices or IoT devices for the attack. These all compromised devices make the DDoS attacks more effective.</p>\n<h2 id=\"what-is-ddos-mitigation\" style=\"position:relative;\"><a href=\"#what-is-ddos-mitigation\" aria-label=\"what is ddos mitigation 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 DDoS mitigation?</h2>\n<p>DDoS mitigation is a process in which we have used a set of techniques or tools for minimizing or mitigating the impact of distributed denial-of-service (DDoS) attacks on the targeted servers or networks. </p>\n<h2 id=\"types-of-ddos-attacks\" style=\"position:relative;\"><a href=\"#types-of-ddos-attacks\" aria-label=\"types of ddos attacks 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>Types of DDoS Attacks</h2>\n<h3 id=\"1-volume-based-attacks\" style=\"position:relative;\"><a href=\"#1-volume-based-attacks\" aria-label=\"1 volume based attacks 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. Volume Based Attacks</h3>\n<p>The Volume Based Attack DDoS attack is the most common DDoS attack. An attacker uses multiple methods to generate massive traffic volumes to overwhelms a machine's network bandwidth because of creating massive volume traffic that makes it impossible for legitimate traffic to flow into or out of the targeted site. The machine continually has to check the malicious data requests and has no room to accept legitimate traffic. We can detect this type of attack easily.</p>\n<h3 id=\"2-protocol-attacks\" style=\"position:relative;\"><a href=\"#2-protocol-attacks\" aria-label=\"2 protocol attacks 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. Protocol Attacks</h3>\n<p>The Protocol attacks target Layer 3 and Layer 4. Attackers use malicious connection requests for consuming the processing capacity of network infrastructure resources like servers, firewalls, and load balancers.</p>\n<p>An SYN flood (half-open attack) is the most common way; in this attack, the attacker sends repeated initial connection requests and overwhelms all available ports on a targeted server machine or device.</p>\n<h3 id=\"3-application-layer-attacks\" style=\"position:relative;\"><a href=\"#3-application-layer-attacks\" aria-label=\"3 application layer attacks 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. Application Layer Attacks</h3>\n<p>The Application attacks target Layer 7, which is the topmost layer in the OSI network model. This layer is closest to the end-user, which means both the OSI application layer and the user interact directly with the software application. These attacks are typically small in volume compared to the other layers attacks, so these attacks are not easy to catch, i.e., a small number of HTTP requests on a login page.</p>\n<h2 id=\"ddos-attack-examples\" style=\"position:relative;\"><a href=\"#ddos-attack-examples\" aria-label=\"ddos attack examples 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>DDoS attack examples</h2>\n<ol>\n<li>In September 2016 - An attack on the Internet of Things (IoT) devices by Mirai malware impacted Internet platforms and services (Brian Krebs, DNS solution provider Dyn, etc.).\nHere is the list of <a href=\"https://en.wikipedia.org/wiki/2016_Dyn_cyberattack#Affected_services\">sites or services</a> (Github, Twitter, etc.) were unavailable in Europe and North America.</li>\n<li>In Feb 2014 - According to a report on Gigaom, Cloudflare datacenters hit by the world's largest distributed denial-of-service attack (DDoS) in Europe and the U.S. This DDoS attack estimated at approximately 400 gigabits per second of traffic.</li>\n<li>In February 2018 - A most potent distributed denial-of-service attack (DDoS) on the Developers platform GitHub. This DDoS attack estimated approx <a href=\"https://www.wired.com/story/github-ddos-memcached/\">1.35 terabits</a> per second and lasted for roughly 20 minutes.</li>\n<li>In February 2020 - Amazon Web Services was hit by a powerful gigantic DDoS attack. The attack was running for three days and was estimated at approximately 2.3 terabytes per second.</li>\n</ol>\n<h2 id=\"best-practices-for-preventing-ddos-attacks\" style=\"position:relative;\"><a href=\"#best-practices-for-preventing-ddos-attacks\" aria-label=\"best practices for preventing ddos attacks 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>Best Practices for Preventing DDoS attacks</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 41.07692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAABibAAAYmwFJdYOUAAABYUlEQVQoz21SS07DMBDN8bgBh+ASsOUISGxAqAjRBQLBks8KCQkEiAaahKZCpaVNmr8dO7EfjpsmLWIke8aTmTd5M2NgRaSUWgshwBhDURRac861XrXLslzLWYpROcTKqYRSCtd1MR6P8ek4sCwLg8EAtm1jOHSVtkAIaQCXoJU28I8svreVRf3WifIvI9nmVIBcRX+GDF8egRvkCHgdUF15CAQOwOIGR4JBgDbvQp0oF3VBRbkyuy8zHNw4uDY9TGKqgDIILiB7J5Dnm5D9M4iqZerqXG1h92hD5eeqNwyvlonjBxNcLMoZhfrDw48Y+2aITj/GKGHKXy5oTp+B+x3A79W0gdunPXTvtrXNaY438xEj3297WKrAC9vD5fs3Ts0fTEjZ9Igq+vO0QEaLhlKapnpoy+ESQpHEsd4IPeW6FEg4hyDJ2irklMCfTZEmrT+KIgRBoFerkizL4HleA/gLexdmVeDAlCYAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"How to mitigate DDoS attack?\"\n        title=\"How to mitigate DDoS attack?\"\n        src=\"/static/46f5d3c222e27f016b3ba0eccd8df338/e5715/How-to-mitigate-DDoS-attack.png\"\n        srcset=\"/static/46f5d3c222e27f016b3ba0eccd8df338/a6d36/How-to-mitigate-DDoS-attack.png 650w,\n/static/46f5d3c222e27f016b3ba0eccd8df338/e5715/How-to-mitigate-DDoS-attack.png 768w,\n/static/46f5d3c222e27f016b3ba0eccd8df338/c1b63/How-to-mitigate-DDoS-attack.png 1200w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"1-traffic-monitoring\" style=\"position:relative;\"><a href=\"#1-traffic-monitoring\" aria-label=\"1 traffic monitoring 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. Traffic Monitoring</h3>\n<p>Application traffic monitoring is essential. We can identify most of the attacks using the proper monitoring. Commonly DDoS attacks are made with high volume traffic but DDoS attacks could be possible with a single vulnerable HTTP endpoint. </p>\n<p>Whenever traffic exceeds a defined threshold, then you should get some alert or notification. The best practice is to have the proper configuration for the alerting in your monitoring tools. It helps you identify the DDoS attack as early as possible and mitigate damage.</p>\n<h3 id=\"2-organize-a-ddos-attack-response-plan\" style=\"position:relative;\"><a href=\"#2-organize-a-ddos-attack-response-plan\" aria-label=\"2 organize a ddos attack response plan 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. Organize a DDoS Attack Response Plan</h3>\n<p>According to organizations size and policies, multiple teams have different responsibilities in infrastructure management. The DDoS attacks happen suddenly and should document the steps that need to follow.</p>\n<p>During the DDoS attack, first, you need to think about minimizing the impact on your application. Team responsibilities for key team members to ensure the organized reaction to the attack should be clear and the first step is defining how it will end.</p>\n<p><strong>Create a checklist</strong>: Define all the processes and steps in a list, like what tools you will use, who is the right person for contact.</p>\n<p><strong>Communication</strong>: You should correctly organize all communications and well-defined. </p>\n<p><strong>Responsibility</strong>: Documente all the team member's responsibilities and their reaction. </p>\n<h3 id=\"3-activate-a-waf\" style=\"position:relative;\"><a href=\"#3-activate-a-waf\" aria-label=\"3 activate a waf 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. Activate a WAF</h3>\n<p>A Web Application Firewall (WAF) is a set of rules or policies that helps protect web applications or APIs from malicious traffic. WAF sits between an application and the HTTP traffic and filters the common web exploits that can affect availability.</p>\n<p>There are various WAF solutions available, but you need to analyze which WAF solution is suitable for your application.</p>\n<h3 id=\"4-rate-limit\" style=\"position:relative;\"><a href=\"#4-rate-limit\" aria-label=\"4 rate limit 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. Rate Limit</h3>\n<p>Attackers can make so many <a href=\"https://www.loginradius.com/blog/engineering/best-practice-guide-for-rest-api-security/\">repeated calls on the APIs</a>. It can make resources unavailable to its genuine users. A rate limit is the number of API calls or requests that a user can make within a given time frame. When this limit is exceeded, block API access temporarily and return the 429 (too many requests) HTTP error code.</p>\n<p>I m adding node js examples to implement the rate limit. multiple npm packages are available for node js</p>\n<p> <strong>NodeJs</strong></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"javascript\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk15\">import</span><span class=\"mtk1\"> </span><span class=\"mtk12\">rateLimit</span><span class=\"mtk1\"> </span><span class=\"mtk15\">from</span><span class=\"mtk1\"> </span><span class=\"mtk8\">&#39;express-rate-limit&#39;</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk15\">export</span><span class=\"mtk1\"> </span><span class=\"mtk4\">const</span><span class=\"mtk1\"> </span><span class=\"mtk12\">apiRatelimit</span><span class=\"mtk1\"> = </span><span class=\"mtk11\">rateLimit</span><span class=\"mtk1\">({</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  </span><span class=\"mtk12\">windowMs:</span><span class=\"mtk1\"> </span><span class=\"mtk7\">60</span><span class=\"mtk1\"> * </span><span class=\"mtk7\">60</span><span class=\"mtk1\"> * </span><span class=\"mtk7\">1000</span><span class=\"mtk1\">, </span><span class=\"mtk3\">// 1 hrs in milliseconds</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  </span><span class=\"mtk12\">max:</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\">message:</span><span class=\"mtk1\"> </span><span class=\"mtk8\">&#39;You have exceeded the 100 requests in 1 hrs limit!&#39;</span><span class=\"mtk1\">, </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  </span><span class=\"mtk12\">headers:</span><span class=\"mtk1\"> </span><span class=\"mtk4\">true</span><span class=\"mtk1\">, </span><span class=\"mtk3\">// it will add X-RateLimit-Limit , X-RateLimit-Remaining and Retry-After Headers in the request </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=\"mtk3\">//  you can add this in the middleware. it will apply a rate limit for all requests </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">app</span><span class=\"mtk1\">.</span><span class=\"mtk11\">use</span><span class=\"mtk1\">(</span><span class=\"mtk12\">API</span><span class=\"mtk1\"> </span><span class=\"mtk12\">rate</span><span class=\"mtk1\"> </span><span class=\"mtk12\">limit</span><span class=\"mtk1\">);</span></span></code></pre>\n<h3 id=\"5-passive-cache\" style=\"position:relative;\"><a href=\"#5-passive-cache\" aria-label=\"5 passive cache 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. Passive cache</h3>\n<p>Active cache means if the service first attempts to read from the cache backend and falls back to reading from the actual source. The service is not dependent on requesting the data from the real upstream server. A cache backend is a key-value store (e.g., Redis) or In-Memory cache, and the actual source of data is SQL, MongoDB, etc.</p>\n<p>Passive cache architecture ensures high volume traffic never hits to actual server or service.</p>\n<p>I m adding node js examples to implement the passive cache. multiple npm packages are available for node js</p>\n<p> <strong>NodeJs</strong></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"javascript\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk15\">import</span><span class=\"mtk1\"> </span><span class=\"mtk12\">nodeCache</span><span class=\"mtk1\"> </span><span class=\"mtk15\">from</span><span class=\"mtk1\"> </span><span class=\"mtk8\">&quot;node-cache&quot;</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk4\">const</span><span class=\"mtk1\"> </span><span class=\"mtk12\">myCache</span><span class=\"mtk1\"> = </span><span class=\"mtk4\">new</span><span class=\"mtk1\"> </span><span class=\"mtk10\">nodeCache</span><span class=\"mtk1\">();</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">ap</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk3\">// set object in the cache </span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">obj</span><span class=\"mtk1\"> = { </span><span class=\"mtk12\">userid:</span><span class=\"mtk1\"> </span><span class=\"mtk7\">909887</span><span class=\"mtk1\">, </span><span class=\"mtk12\">name:</span><span class=\"mtk1\"> </span><span class=\"mtk8\">&quot;example&quot;</span><span class=\"mtk1\"> };</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">success</span><span class=\"mtk1\"> = </span><span class=\"mtk12\">myCache</span><span class=\"mtk1\">.</span><span class=\"mtk11\">set</span><span class=\"mtk1\">( </span><span class=\"mtk8\">&quot;userKey&quot;</span><span class=\"mtk1\">, </span><span class=\"mtk12\">obj</span><span class=\"mtk1\">, </span><span class=\"mtk7\">600</span><span class=\"mtk1\"> ); </span><span class=\"mtk3\">// ttl is 600 seconds </span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk3\">//read object from the cache </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">value</span><span class=\"mtk1\"> = </span><span class=\"mtk12\">myCache</span><span class=\"mtk1\">.</span><span class=\"mtk11\">get</span><span class=\"mtk1\">( </span><span class=\"mtk8\">&quot;userKey&quot;</span><span class=\"mtk1\"> );</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk15\">if</span><span class=\"mtk1\"> ( </span><span class=\"mtk12\">value</span><span class=\"mtk1\"> == </span><span class=\"mtk4\">undefined</span><span class=\"mtk1\"> ){</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  </span><span class=\"mtk3\">// handle miss!</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span></code></pre>\n<h3 id=\"6-cloud-based-ddos-mitigation\" style=\"position:relative;\"><a href=\"#6-cloud-based-ddos-mitigation\" aria-label=\"6 cloud based ddos mitigation 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. Cloud-Based DDoS Mitigation</h3>\n<p>Several vendors provide DDoS mitigation services as software as a service model. They have charged a license fee the first time then charge according to service usages. </p>\n<p>The Cloud-based DDoS mitigation solution has a lot of advantages. They have dedicated staff, better reaction time, High network bandwidth than private networks to perform better in case of volume-based DDoS attack. Multi cross-region availability with auto replica or backup so you can switch to your application load next available region without impacting your actual users, updated policies or rule set, a better experience for handling DDoS attacks.</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>The DDoS attacks are increasing day by day. Organizations need to prepare for any attack. If the organization does not prepare in advance and any attack happens, that case damage control can take months and impact the organization's reputation. </p>\n<p>LoginRadius has all processes and policies well defined, 24X7 monitoring by delegating security team. Please see <a href=\"https://www.loginradius.com/docs/security/overview/\">Security Overview</a> document for more information.</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 .mtk15 { color: #C586C0; }\n  .dark-default-dark .mtk1 { color: #D4D4D4; }\n  .dark-default-dark .mtk12 { color: #9CDCFE; }\n  .dark-default-dark .mtk8 { color: #CE9178; }\n  .dark-default-dark .mtk4 { color: #569CD6; }\n  .dark-default-dark .mtk11 { color: #DCDCAA; }\n  .dark-default-dark .mtk7 { color: #B5CEA8; }\n  .dark-default-dark .mtk3 { color: #6A9955; }\n  .dark-default-dark .mtk10 { color: #4EC9B0; }\n</style>","frontmatter":{"date":"February 24, 2021","updated_date":null,"description":"Learn what a DDoS attack is, including the various classifications of attacks, and how to defend your site from one.","title":"What is a DDoS Attack and How to Mitigate it","tags":["DDoS","DDos mitigate","DDoS Prevention"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.3333333333333333,"src":"/static/e82159853c0c436c7ad2b509619a9a01/ee604/What-is-a-DDoS-attack.png","srcSet":"/static/e82159853c0c436c7ad2b509619a9a01/69585/What-is-a-DDoS-attack.png 200w,\n/static/e82159853c0c436c7ad2b509619a9a01/497c6/What-is-a-DDoS-attack.png 400w,\n/static/e82159853c0c436c7ad2b509619a9a01/ee604/What-is-a-DDoS-attack.png 800w,\n/static/e82159853c0c436c7ad2b509619a9a01/a8378/What-is-a-DDoS-attack.png 1024w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Vijay Singh Shekhawat","github":"code-vj","avatar":null}}}}]},"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.jpg"}}}},"pageContext":{"limit":6,"skip":570,"currentPage":96,"type":"///","numPages":161,"pinned":"ee8a4479-3471-53b1-bf62-d0d8dc3faaeb"}},"staticQueryHashes":["1171199041","1384082988","2100481360","23180105","528864852"]}