{"componentChunkName":"component---src-templates-blog-list-template-js","path":"/147","result":{"data":{"allMarkdownRemark":{"edges":[{"node":{"excerpt":"On Sept. 2, the Canadian Government announced an update to the Digital Privacy Act (June 2015) that will make it mandatory for all Canadian…","fields":{"slug":"/identity/canada-to-fine-companies-for-not-reporting-data-breaches/"},"html":"<p>On Sept. 2, the Canadian Government announced an update to the <a href=\"https://laws-lois.justice.gc.ca/eng/annualstatutes/2015_32/page-1.html\">Digital Privacy Act (June 2015)</a> that will make it mandatory for all Canadian companies to report if their data has been breached. Currently, Alberta is the only province where companies are required to report breaches by law. This change makes this a requirement across the country.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 700px; \"\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/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEAv/EABYBAQEBAAAAAAAAAAAAAAAAAAEAA//aAAwDAQACEAMQAAABRRApz0LI/8QAGRAAAgMBAAAAAAAAAAAAAAAAAQIAERIx/9oACAEBAAEFAgcgi0burUu7QtP/xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQMBAT8BjH//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAcEAACAgIDAAAAAAAAAAAAAAABIQAREBIxUbH/2gAIAQEABj8CTuFixyOsVNSV7j//xAAaEAADAQEBAQAAAAAAAAAAAAAAAREhMVHh/9oACAEBAAE/IUUlg+yBmE8IVHCFirXfo14f/9oADAMBAAIAAwAAABCz7//EABYRAQEBAAAAAAAAAAAAAAAAAAEQEf/aAAgBAwEBPxAGR//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAgEBPxCtf//EABsQAQADAQEBAQAAAAAAAAAAAAEAETEhYVGR/9oACAEBAAE/EBZJACxIpJ2FzuPPyCuhr7CMtO37LRoshTTIXADxn//Z'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Data Breach\"\n        title=\"Data Breach\"\n        src=\"/static/cc5bf441279823ec0b9cf145d6200a7c/29d31/05_aftermath-100703535-large.jpg\"\n        srcset=\"/static/cc5bf441279823ec0b9cf145d6200a7c/6aca1/05_aftermath-100703535-large.jpg 650w,\n/static/cc5bf441279823ec0b9cf145d6200a7c/29d31/05_aftermath-100703535-large.jpg 700w\"\n        sizes=\"(max-width: 700px) 100vw, 700px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>Under the new proposed rules, any company that has a data breach will be required to do a risk assessment to determine if the breach poses a “Risk of significant harm”. If so, they’re required to notify all individuals that are affected and also report the breach to the Canadian Privacy Commissioner’s Office. </p>\n<p>A 2017 study by the Ponemon Institute found data breaches are most expensive in the United States and Canada. The average per capita cost of a data breach was $225 in the United States and $190 in Canada. However, because breach reporting is not mandatory, it’s difficult to get a full picture of the number of breaches. Still, over the last few years there have been a number of high profile <a href=\"https://www.loginradius.com/blog/identity/how-do-i-know-if-my-email-has-been-leaked-in-a-data-breach/\">data breaches</a> where the personal information of Canadians was stolen. It’s hoped that mandatory reporting will create an incentive for organizations to take information security more seriously.</p>\n<p><a href=\"https://www.loginradius.com/resource/the-ccpa-and-customer-identity\"><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,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABWklEQVQY002QTUsCURSGhxY5X5FpCmPgR1rNOCpmOo7WaOagohVEQaQE0TJI2rSzNq36JdEmiDaFi4hWbtq1adFfeTtzdarFy/m49zznvZcTljfgSCRJKxZktQJJtcai2j13xCfKEPUtzJt78GfqEFI2eLUKYWkd/OQOx2A0GMjU4NMIGi9iJmHCn7QQzNrw6pvgaYBBKUppG+HaEXT7EFJxH550g/XZQoqcm8TMNkqdHrL1A/gJ7AnnIC0amE1W6ZxqcucjVxFzG8paE0q+hVCuMa4pdxgM6G5XyE200ETMaCGgVyBE85AnwN8n093gagOhQhvh0g4WjA7LnW9yOQwoUWNOs5gjkST9kwN0Bjgli7PBLT6/vvHw/Iq7xxfcPw3xNvrA8H0Eb6qG6Xj5D+hVyUWsAJH+0JVMch1ORQwUd08YtNe/Qvd8gG5/gNPLGxxfXEPWKvAQ6wfQn8CjOYwLfAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"ccpa-customer-identity\"\n        title=\"ccpa-customer-identity\"\n        src=\"/static/277eebfdb42ba7a9547788e0c4bc7ae6/e5715/ccpa-customer-identity.png\"\n        srcset=\"/static/277eebfdb42ba7a9547788e0c4bc7ae6/a6d36/ccpa-customer-identity.png 650w,\n/static/277eebfdb42ba7a9547788e0c4bc7ae6/e5715/ccpa-customer-identity.png 768w,\n/static/277eebfdb42ba7a9547788e0c4bc7ae6/63ff0/ccpa-customer-identity.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>The consequences for organizations that decide not to comply with the new rules are two-fold. First of all is the public relations nightmare that occurs when knowledge of the breach eventually becomes public. Typically this comes in the form of loss of confidence in the brand and will result in loss of customers; up to a third of customers will leave after a breach. Second, are the fines for non-compliance under the proposed new rules; up to $10,000 for a summary offence and up to $100,000 for an indictable offence. </p>\n<p>To learn more about how LoginRadius can help you manage and secure your customer profile data, <a href=\"https://www.loginradius.com/contact-sales/\">contact us</a> to chat with a product specialist about your specific data security needs or visit our <a href=\"https://www.loginradius.com/data-management-and-governance/\">Data Management</a> page to learn more about how we secure your data.</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":"September 07, 2017","updated_date":null,"description":"The news of Canada to fine companies for not reporting data breaches is making headlines these days. Know what it means for your business.","title":"Canada To Fine Companies For Not Reporting Data Breaches","tags":["security"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.3333333333333333,"src":"/static/cc5bf441279823ec0b9cf145d6200a7c/9a128/canada-to-fine-companies.jpg","srcSet":"/static/cc5bf441279823ec0b9cf145d6200a7c/f836f/canada-to-fine-companies.jpg 200w,\n/static/cc5bf441279823ec0b9cf145d6200a7c/2244e/canada-to-fine-companies.jpg 400w,\n/static/cc5bf441279823ec0b9cf145d6200a7c/9a128/canada-to-fine-companies.jpg 700w","sizes":"(max-width: 700px) 100vw, 700px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.jpg"}}}},{"node":{"excerpt":"Which character do you consider as the end of line or newline? Most developers will answer \\n (except for front-end developers, they would…","fields":{"slug":"/engineering/eol-end-of-line-or-newline-characters/"},"html":"<p>Which character do you consider as the end of line or newline? Most developers will answer \\n (except for front-end developers, they would say: \"&#x3C;/br>tag\" 😊 ). But this is not true, let's understand why.</p>\n<p><strong>What is an End of Line character:</strong></p>\n<p>It is a character in a string which represents a line break, which means that after this character, a new line will start. There are two basic new line characters:</p>\n<p><strong>LF</strong> (character : \\n, Unicode : U+000A, ASCII : 10, hex : 0x0a): This is simply the '\\n' character which we all know from our early programming days. This character is commonly known as the ‘Line Feed’ or ‘Newline Character’.</p>\n<p><strong>CR</strong> (character : \\r, Unicode : U+000D, ASCII : 13, hex : 0x0d) : This is simply the 'r' character. This character is commonly known as ‘Carriage Return’.</p>\n<p>As matter of fact, \\r has also has a different meaning. In older printers, \\r meant moving the print head back to the start of line and \\n meant starting a new line.</p>\n<p><strong>OS support</strong></p>\n<p>Unix: Unix systems consider '\\n' as a line terminator. Unix considers \\r as going back to the start of the same line.</p>\n<p>Mac (up to 9): Older Mac OSs consider '\\r' as a newline terminator but newer OS versions have been made to be more compliant with Unix systems to use '\\n' as the newline.</p>\n<p>Windows: Windows has a different style of newline, Windows supports the combination of both CR and LF as the newline character - '\\r\\n'.</p>\n<p><strong>How to check</strong><br>\nThere are lots ways to check this. I use Notepad++ as my text editor for this because it is easy to use and is widely used by developers.<br>\nNPP show all characters</p>\n<p>Open any text file and click on the pilcrow (¶) button. Notepad++ will show all of the characters with newline characters in either the CR and LF format. If it is a Windows EOL encoded file, the newline characters of CR LF will appear (\\r\\n). If the file is UNIX or Mac EOL encoded, then it will only show LF (\\n).</p>\n<p><strong>NPP Extended search</strong></p>\n<p>Press the key combination of Ctrl + Shift + F and select 'Extended' under the search mode. Now search '\\r\\n' - if you find this at end of every line, it means this is a Windows EOL encoded file. However, if it is '\\n' at the end of every line, then it is a Unix or Mac EOL encoded file.</p>\n<p><strong>How to convert</strong></p>\n<p>Let's stick with notepad++ for this, too. Open any file that you would like to convert, click on the Edit menu, scroll down to the EOL conversion option, and select the format that you would like to convert the file to.</p>\n<p><strong>Reference</strong></p>\n<ul>\n<li><a href=\"https://www.compart.com/en/unicode/U+000A\">Unicode Character (U+000A)</a></li>\n<li><a href=\"https://www.compart.com/en/unicode/U+000D\">Unicode Character (U+000D)</a></li>\n</ul>\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":"September 06, 2017","updated_date":null,"description":"Learn what are EOL (End of Line) or LF (Line Feed) or NL (New Line) ascii characters (\\n\\r) and why there are two (\\n\\r) newline characters.","title":"EOL or End of Line or newline ascii character","tags":["Engineering","EOL","LF","Linux","Mac","Windows"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.7699115044247788,"src":"/static/4f4e5464d0975f41f5388d63c602e499/ee604/eol.png","srcSet":"/static/4f4e5464d0975f41f5388d63c602e499/69585/eol.png 200w,\n/static/4f4e5464d0975f41f5388d63c602e499/497c6/eol.png 400w,\n/static/4f4e5464d0975f41f5388d63c602e499/ee604/eol.png 800w,\n/static/4f4e5464d0975f41f5388d63c602e499/f3583/eol.png 1200w,\n/static/4f4e5464d0975f41f5388d63c602e499/e4d72/eol.png 1280w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Kundan Singh","github":null,"avatar":null}}}},{"node":{"excerpt":"Cocoapod is a package dependency manager for Objective-C and Swift projects with XCode. Those Languages are used to make applications that…","fields":{"slug":"/engineering/what-is-cocoapods-and-installation/"},"html":"<p>Cocoapod is a package dependency manager for Objective-C and Swift projects with XCode. Those Languages are used to make applications that run iOS, macOS, watchOS and tvOS. Cocoapods also acts as a coding hub to share your code with other people. That way we as a community of coders don’t have to “re-invent the wheel” to tackle problems that have already been solved.</p>\n<h4 id=\"installing-cocoapods\" style=\"position:relative;\"><a href=\"#installing-cocoapods\" aria-label=\"installing cocoapods 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>Installing Cocoapods</h4>\n<p>Cocoapods is built on top of Ruby, so you would need to install that in your system before using Cocoapods.<br>\nThen, you can install using this command:<br>\n<code>sudo gem install cocoapods</code></p>\n<h4 id=\"using-cocoapods\" style=\"position:relative;\"><a href=\"#using-cocoapods\" aria-label=\"using cocoapods 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 Cocoapods</h4>\n<p>Open Terminal and go to your XCode project directory.<br>\nAfterwards, run this command:<br>\n<code>pod init</code></p>\n<p>Then a Podfile is generated, configure the file, like so:  </p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">platform :ios, &#39;8.0&#39;  </span>\n<span class=\"grvsc-line\">use_frameworks!  </span>\n<span class=\"grvsc-line\">target &#39;MyApp&#39; do  </span>\n<span class=\"grvsc-line\"> pod &#39;AFNetworking&#39;, &#39;~&gt; 2.6&#39;   pod &#39;ORStackView&#39;, &#39;~&gt; 3.0&#39;  </span>\n<span class=\"grvsc-line\"> pod &#39;SwiftyJSON&#39;, &#39;~&gt; 2.3&#39;</span>\n<span class=\"grvsc-line\">end</span></code></pre>\n<p>Where ‘MyApp’ is your application project and the ‘pod’ inside it are the libraries that you want to use! If you need to control which version of those libraries you can manipulate it on the right side of the config.</p>\n<h4 id=\"updating-cocoapods\" style=\"position:relative;\"><a href=\"#updating-cocoapods\" aria-label=\"updating cocoapods 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>Updating Cocoapods</h4>\n<p>If you want to keep up to date with the codes shared in cocoapods you can run the command:<br>\n<code>pod update</code></p>\n<p>That way any latest bug fixes, enhancement and features on the new version will be downloaded!<br>\nTo see which Libraries that you want to utilize, head over to <a href=\"https://cocoapods.org/\">cocoapods</a> and search over there!</p>\n<h4 id=\"personal-favorites-pods\" style=\"position:relative;\"><a href=\"#personal-favorites-pods\" aria-label=\"personal favorites pods 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>Personal favorites pods</h4>\n<p><a href=\"https://cocoapods.org/pods/Realm\">Realm</a> : For Managing Databases in iOS application</p>\n<p><a href=\"https://cocoapods.org/pods/Alamofire\">Alamofire</a> : For All of your Networking Needs</p>\n<p><a href=\"https://github.com/xmartlabs/Eureka\">Eureka</a> : For Simplified UI and Forms</p>\n<p>And of course our:<br>\n<a href=\"https://github.com/LoginRadius/ios-sdk\">LoginRadiusSDK</a> : For our API Calls to Manage your Login System</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</style>","frontmatter":{"date":"September 06, 2017","updated_date":null,"description":null,"title":"Cocoapods : What It Is And How To Install?","tags":["Swift","Objective-C","xcode"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.4184397163120568,"src":"/static/6c62ec58193a579af3f486cb276c6bb8/14b42/cocoapods-orange-on-grey.jpg","srcSet":"/static/6c62ec58193a579af3f486cb276c6bb8/f836f/cocoapods-orange-on-grey.jpg 200w,\n/static/6c62ec58193a579af3f486cb276c6bb8/2244e/cocoapods-orange-on-grey.jpg 400w,\n/static/6c62ec58193a579af3f486cb276c6bb8/14b42/cocoapods-orange-on-grey.jpg 800w,\n/static/6c62ec58193a579af3f486cb276c6bb8/47498/cocoapods-orange-on-grey.jpg 1200w,\n/static/6c62ec58193a579af3f486cb276c6bb8/0e329/cocoapods-orange-on-grey.jpg 1600w,\n/static/6c62ec58193a579af3f486cb276c6bb8/bd694/cocoapods-orange-on-grey.jpg 2338w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Thompson Sanjoto","github":null,"avatar":null}}}},{"node":{"excerpt":"What is This, and Why Should I Care? NPM is a package manager for javascript. It is used to share and distribute code amongst the coding…","fields":{"slug":"/engineering/node-package-manager-npm/"},"html":"<h5 id=\"the-guide-to-npmwhat-is-this-and-why-should-i-care\" style=\"position:relative;\"><a href=\"#the-guide-to-npmwhat-is-this-and-why-should-i-care\" aria-label=\"the guide to npmwhat is this and why should i care permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><span\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/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAIAAAAmMtkJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACi0lEQVQoz21Ra0/iQBTlJ/sH/KKJ2f3gtwUlsIqwkQ2sEIpSqUBBmBZKC0VogYJdICgqtrzk0efsoJvNZrOTk5vMnTn33JPjMFMpq9uF9/dQlv/A6nQsSfobtiSN6i2JFfrZbD+TWbdaZiDg0Ov1OYSqrk10fWoYE9OcWZYB/3NmED5CqCxX49lMg1DDYg6rUX+oVIQf4VYc66ZuJBzvEMQrw0zZ8oyvoqrmb9VSSWXLk0J+JQrbMaZpQ6hHIg6tVhPZskiSzXyuRVNNAJr520Yuy98k7zLpKkEImcyq31/I8rzbXT09IZplGFtyNOqY0BTXbJrogrZFsG20M6qoY9q2ZpqgSP9r4EMZkWccVySSI693FPAP3e5RIDA8PnqJRB5PT2Y0hX4WKWAYxmKx2GiabpiobNZr+EGe89VCKKQSyafvwSlNqSQ5vrpU06nR2Wk3eK5ZVhF56XQuYhhxEaJw7BKL3ZC5NyQfi22VC3hi4HJJu7tIbej19JxO+fBQ3t9vhcPPyjiXy+YAwHzH6W+elN+d8H6J+b+2n19gPO6Y0jQjiOr07fVFeciDR74+VucIyvRNXWpiuw0o0BsOS4lIP4staawaPeNyKcUwt8oTiqLu6hPNVnQbJYncLCFEWykbcwEhANSF/2S1WgIikbzG04k4cRWXaxzyrKGo1pUKJ4rVarUhigUAnE6X03Xk9ngYlm2IzWKxmCdTPM9fX+NYOHTu8ZJZkmOY3zkb77nbJooG9gaDNCjcMqUCW+4N+qhj2fb2FcK5rvmCwb3PnwT5p/Yep4ZhDgPHtfqdUeMtoTFnStNS6RUU5hyrUMAWBb1W2/A8lNpiNHK8sxPe34seHMB2a9NoGD7fL2uqkd5CAd8zAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"the guide to NPM\"\n        title=\"the guide to NPM\"\n        src=\"/static/b1b472805cf24bc9687a374f0e76cb83/e5715/the-guide-to-NPM.png\"\n        srcset=\"/static/b1b472805cf24bc9687a374f0e76cb83/a6d36/the-guide-to-NPM.png 650w,\n/static/b1b472805cf24bc9687a374f0e76cb83/e5715/the-guide-to-NPM.png 768w,\n/static/b1b472805cf24bc9687a374f0e76cb83/aa440/the-guide-to-NPM.png 1500w\"\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>What is This, and Why Should I Care?</h5>\n<p>NPM is a package manager for javascript. It is used to share and distribute code amongst the coding community. There are over half a million packages for free developed and shared to help your JavaScript development.</p>\n<p>To discover packages click <a href=\"http://www.npmjs.com\">here</a></p>\n<h5 id=\"how-do-i-install-npm\" style=\"position:relative;\"><a href=\"#how-do-i-install-npm\" aria-label=\"how do i install npm 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 Do I Install NPM?</h5>\n<p>NPM can easily be installed by going to the node.js website. Just click on the link to download an executable file which will install the package manager for you.</p>\n<p>(If you have brew on Mac or Chocolatey on Windows installed, it is even easier just run the command:</p>\n<p>[code]brew install npm[/code]</p>\n<p>Or</p>\n<p>[code]choco install nodejs[/code]</p>\n<h5 id=\"how-do-i-install-packages\" style=\"position:relative;\"><a href=\"#how-do-i-install-packages\" aria-label=\"how do i install packages 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 Do I Install Packages?</h5>\n<p>Head over here to search for your package. Once you’ve found it, type in your console:</p>\n<p>[code]npm install -g[/code]</p>\n<p>Since NPM packages are open-source, be wary that some of the packages may not be built correctly. A good way to tell would be viewing the top of the page for any errors.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 484px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 14.46280991735537%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAIAAAAcOLh5AAAACXBIWXMAAAsTAAALEwEAmpwYAAAArElEQVQI14XL3QrBUAAA4D2zXFNulZ9SLrbCftBssRbtmE2ktjBtoyTWWrMzZ5HacmnDE/juP8xzveTxurohQrcoQgGEY3GyWRnpO83+wfoiDVxWsBlVVQAAi/mywxOsjW9jxYJre2fHRz1zNHSyTNPUDhfJiaXzU/eTX6ZlooVKlF8eCQLHcSzDk7MmcS/iYYEyGr12NxhWMrm2F0maoqqDaU4O8pJb1+A3fwA1PJJKGuHhOQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"image1\"\n        title=\"image1\"\n        src=\"/static/3e8083212f595a6fecdfdd039a9e9a46/ff42b/image1.png\"\n        srcset=\"/static/3e8083212f595a6fecdfdd039a9e9a46/ff42b/image1.png 484w\"\n        sizes=\"(max-width: 484px) 100vw, 484px\"\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<h5 id=\"how-do-i-keep-my-packages-up-to-date\" style=\"position:relative;\"><a href=\"#how-do-i-keep-my-packages-up-to-date\" aria-label=\"how do i keep my packages up to date 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 Do I Keep My Packages Up-To-Date?</h5>\n<p>To update the npm packages, simply run:</p>\n<p>[code]npm update -g[/code]</p>\n<p>This will update all your outdated packages to the latest.</p>\n<h5 id=\"some-recommended-packages\" style=\"position:relative;\"><a href=\"#some-recommended-packages\" aria-label=\"some recommended packages 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>Some Recommended Packages</h5>\n<ul>\n<li><a href=\"https://www.npmjs.com/package/http-server\">Http-server</a></li>\n</ul>\n<p>Detail: Emulates a web-server for client-side testing</p>\n<hr>\n<ul>\n<li><a href=\"https://www.npmjs.com/package/restify\">Restify</a></li>\n</ul>\n<p>Detail: Assists in setting up a REST APIs to test on your local server</p>\n<hr>\n<ul>\n<li><a href=\"https://www.npmjs.com/package/mocha\">Mocha</a></li>\n</ul>\n<p>Detail: Unit testing for web-development. Very useful in testing “code coverage” (It tells you where your code is not being tested in a nice HTML file)</p>\n<hr>\n<ul>\n<li><a href=\"https://www.npmjs.com/package/loginradius-sdk\">LoginRadius-SDK</a></li>\n</ul>\n<p>Detail: For existing customers, simplifies calls to our server for easy customizability</p>\n<hr>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"August 04, 2017","updated_date":null,"description":null,"title":"Node Package Manager (NPM)","tags":["NodeJs","NPM"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/b1b472805cf24bc9687a374f0e76cb83/ee604/the-guide-to-NPM.png","srcSet":"/static/b1b472805cf24bc9687a374f0e76cb83/69585/the-guide-to-NPM.png 200w,\n/static/b1b472805cf24bc9687a374f0e76cb83/497c6/the-guide-to-NPM.png 400w,\n/static/b1b472805cf24bc9687a374f0e76cb83/ee604/the-guide-to-NPM.png 800w,\n/static/b1b472805cf24bc9687a374f0e76cb83/f3583/the-guide-to-NPM.png 1200w,\n/static/b1b472805cf24bc9687a374f0e76cb83/0dadc/the-guide-to-NPM.png 1500w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Eric Chan","github":null,"avatar":null}}}},{"node":{"excerpt":"Preparing accurate test cases for payment gateway is a general task for a tester working in a service industry. In this post, I have…","fields":{"slug":"/growth/test-cases-for-your-e-commerce-payment-gateway-page/"},"html":"<p>Preparing accurate test cases for payment gateway is a general task for a tester working in a service industry. In this post, I have discussed some important scenarios that are inevitable while performing payment gateway testing. Also, I have discussed about the important points one should keep in mind while writing test cases for payment gateway.</p>\n<p><strong><em>Note</em></strong><em>:- Also, if you want to know how to write the best test cases for a perfect UI for your website, go through this</em> <a href=\"https://www.loginradius.com/blog/fuel/2017/07/test-cases-for-your-e-commerce-payment-gateway-page/\"><em>article</em></a><em>.</em></p>\n<h3 id=\"what-is-a-payment-gateway\" style=\"position:relative;\"><a href=\"#what-is-a-payment-gateway\" aria-label=\"what is a payment gateway permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>What Is A Payment Gateway?</strong></h3>\n<p>A payment gateway is a processing unit that approves online payments (debit cards, credit cards, e-wallets, netbanking) for online purchases. The gateways protect highly sensitive details like account holder details, card details, and so on. The data is transferred securely between the two groups: merchant site and customer.</p>\n<h3 id=\"different-kinds-of-payment-gateways\" style=\"position:relative;\"><a href=\"#different-kinds-of-payment-gateways\" aria-label=\"different kinds of payment gateways permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>Different Kinds Of Payment Gateways</strong></h3>\n<p>There are two types of payment gateways. They are as follows:-</p>\n<ul>\n<li><strong>Shared Gateway:-</strong> In this type of gateway, the payment is processed while keeping customer on the merchant site page. As soon as the detail is filled by the customer, a transaction is processed. Shared gateway is the most preferable gateway as it provides the convenience of staying in the merchant site. Some of the examples are <em>Authorize.net CIM and Stripe.</em></li>\n<li><strong>Hosted Gateway:-</strong> Hosted Gateway is the payment process where the customer is directed to the payment gateway website. Afterwards, when the transaction is completed, he or she is redirected to the merchant site.Example:- <em>Setcom, Paypal Standard, Payza</em></li>\n</ul>\n<p>As you have known the basics about payment gateway, let me tell you what aspects you should keep in mind while creating test cases for check out page:-</p>\n<ul>\n<li><strong>Functionality:-</strong> You have to make sure that your payment gateway functions the way it is supposed to do. Check your page rigorously to find the flaws in the functionality.</li>\n<li><strong>Integration:-</strong> You have to check the integration of card and other banking services with the payment gateway. Though, integration is a part of functionality, it requires an exclusive check. The payment gateway should perform the task with high precision whether it bills or pays back.</li>\n<li><strong>Security:-</strong>   It is one of the most important aspects while testing a payment gateway. Other than buffer overruns, one needs to take care of other troubling security threats. Some of the resources you can take help from while testing security on payment gateway are <a href=\"https://www.owasp.org/index.php/Top_10_2013-Top_10\">OWASP Top 10</a>, <a href=\"https://blogs.msdn.microsoft.com/michael_howard/\">Web Blog by Michael Howard</a> and <a href=\"https://security.googleblog.com/\">Google Online Security Blog</a>.</li>\n<li><strong>Performance:-</strong> Performance is another KPI for your payment gateway. Hence, you should make sure about things like number of users your payment gateway page can handle, number of users who are simultaneously using your page. Some of the resources you can refer are <a href=\"https://smartbear.com/learn/performance-testing/\">Smartbear’s Performance Testing Resource</a> and <a href=\"https://www.guru99.com/performance-testing.html\">guru99</a> articles.</li>\n</ul>\n<h3 id=\"checklists-while-preparing-test-cases-for-payment-gateway\" style=\"position:relative;\"><a href=\"#checklists-while-preparing-test-cases-for-payment-gateway\" aria-label=\"checklists while preparing test cases for payment gateway permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>Checklists While Preparing Test Cases For Payment Gateway</strong></h3>\n<ul>\n<li>You should perform tests and collect data from dummy cards from different card issuers like Master card, Visa and Maestro and payment gateways like PayPal and Google Wallet.</li>\n<li>Research about all the error codes related to payment gateways and keep them handy for reference.</li>\n<li>Keep a good understanding about payment gateways workflow.</li>\n<li>Also understand payment gateway’s settings like currency format.</li>\n</ul>\n<h3 id=\"areas-where-payment-gateway-are-used\" style=\"position:relative;\"><a href=\"#areas-where-payment-gateway-are-used\" aria-label=\"areas where payment gateway are used permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>Areas Where Payment Gateway Are Used</strong></h3>\n<ol>\n<li>Ecommerce</li>\n<li>Travelling websites</li>\n<li>Others sites like government sites accepting taxes, sites containing paid application forms etc.</li>\n</ol>\n<p>Here, let’s discuss the example of an E-commerce website’s payment gateway page.</p>\n<h3 id=\"test-cases-for-an-ecommerce-sites-payment-gateway\" style=\"position:relative;\"><a href=\"#test-cases-for-an-ecommerce-sites-payment-gateway\" aria-label=\"test cases for an ecommerce sites payment gateway permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>Test cases for An Ecommerce Site’s Payment Gateway</strong></h3>\n<p><strong>Test Cases</strong></p>\n<p><strong>Process</strong></p>\n<p><strong>Steps To Execute</strong></p>\n<p><strong>Expected Results</strong></p>\n<p>TC-001</p>\n<p>Adding to Cart</p>\n<p>1. Select Items 2. Click on Add to cart</p>\n<p>1. Selected Items should be displayed on checkout page 2. Total amount should be calculated</p>\n<p>TC-002</p>\n<p>Adding to Cart</p>\n<p>1. Select Items 2. Select quantity 3. Click on Add to cart</p>\n<p>1. Selected items should be displayed with its quantity 2. Total amount should be calculated accordingly</p>\n<p>TC-003</p>\n<p>Adding Coupon code</p>\n<p>1. Select item 2. Apply coupon code 3. Click on Add to cart</p>\n<p>Applying a valid coupon code will deduct the amount accordingly</p>\n<p>TC-004</p>\n<p>Adding Invalid Coupon code</p>\n<p>1. Select item 2. Apply coupon code 3. Click on Add to cart</p>\n<p>Applying an invalid coupon code will give an error message- \"Invalid Coupon\" and will not deduct the amount</p>\n<p>TC-005</p>\n<p>Keeping the site idle for sometime after adding products to cart</p>\n<p>1. Select Items 2. Click on Add to Cart 3. leave the site for sometime</p>\n<p>After coming back, items should be still visible in the cart</p>\n<p>TC-006</p>\n<p>Check that Checkout Address Page consist of all the details of product such as Name, Quantity, Amount, etc.</p>\n<p>1. Select Items 2. Click on Add to Cart</p>\n<p>All the information should show on cart page</p>\n<p>TC-007</p>\n<p>Check the Name, Street Address, City, State, Country, Postal code are mandatory field in the Checkout Address page.</p>\n<p>1. Select Items 2. Click on Add to cart 3. Check the Address field</p>\n<p>All the fields should required</p>\n<p>TC-008</p>\n<p>Remove items from the cart</p>\n<p>1. Select 2-3 Items 2. Click on Add to Cart 3. On cart page remove one item</p>\n<p>After removing one item payment should update</p>\n<p>TC-009</p>\n<p>Check Cancel Button</p>\n<p>1. Select 2-3 Items 2. Click on Add to Cart 3. Click on cancel button</p>\n<p>1. It should not redirect to payment 2. Item should not remove from cart</p>\n<p>TC-010</p>\n<p>Check the Name on Card, Card Number,Expiration date, CVV are mandatory fields in the</p>\n<p>1. Select the card type 2. Do not fill any information 3. Click on Submit button</p>\n<p>It should show the validation message for all the required fields</p>\n<p>TC-011</p>\n<p>Check the error message when enter invalid input for mandatory fields</p>\n<p>1. Select the card type 2. Enter invalid card number [Check for CVV, Expiration date] 3. Click on submit button</p>\n<p>It should show error message for invalid details</p>\n<p>TC-012</p>\n<p>Check the redirection after successful payment</p>\n<p>1. Select the card type 2. Enter valid details 3. Click on submit button</p>\n<p>1. Payment should done successfully. 2. It should redirect to site home page with proper details. 3. It should show order no on thank you page.</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"July 21, 2017","updated_date":null,"description":"Trying to make test cases to build a flawless payment gateway page for your ecommerce website? Here are some factors you need to take seriously before creating test cases for payment gateway page.","title":"Test Cases For Your E-commerce Payment Gateway Page","tags":["payment gateway","technology","ecommerce"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.7699115044247788,"src":"/static/aed422329b9801dc1baac0ea6cefb41c/0edbf/Test-Cases-for-your-Ecommerce-Payment-Gateway-Page.png","srcSet":"/static/aed422329b9801dc1baac0ea6cefb41c/69585/Test-Cases-for-your-Ecommerce-Payment-Gateway-Page.png 200w,\n/static/aed422329b9801dc1baac0ea6cefb41c/497c6/Test-Cases-for-your-Ecommerce-Payment-Gateway-Page.png 400w,\n/static/aed422329b9801dc1baac0ea6cefb41c/0edbf/Test-Cases-for-your-Ecommerce-Payment-Gateway-Page.png 560w","sizes":"(max-width: 560px) 100vw, 560px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.jpg"}}}},{"node":{"excerpt":"These days SSL is a must-have element for websites, but SSL certificates are costly and range from $30 to $500 per year for a single website…","fields":{"slug":"/engineering/get-your-free-ssl-certificate/"},"html":"<p>These days SSL is a must-have element for websites, but SSL certificates are costly and range from $30 to $500 per year for a single website. Don’t fret! You can get a FREE SSL certificate! Through “<a href=\"https://letsencrypt.org/\">Let's Encrypt</a>\", a free, automated, and open certificate authority, you will be able to acquire the necessary certificate to enable SSL on your website. Check out the below steps you can follow to get an SSL certificate for your site today.</p>\n<p>To obtain this certificate, you will first need to prove ownership of the domain. There are two requirements that you need to meet in order to generate a certificate from “Let's Encrypt”:</p>\n<p><strong>Http-01</strong>:<br>\nYou will need to setup a directory on your web server's root, and the name of this directory should be “.well-know” and with a “acme-validation” directory included within this. Inside these directories, create a file containing the random string that was provided by the ACME server and this file should serve content which is the random string included in the doc.</p>\n<p><strong>Sample Structure</strong></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">/.well-known/acme-validation/&amp;amp;lt;random file name provided by ACME&amp;amp;gt;</span></code></pre>\n<p><strong>Dns-01:</strong></p>\n<p>You will need to create a .TXT record on the subdomain _acme-challenge. For instance, if you would like to obtain an SSL for the domain “example.com”, then you will need to setup a subdomain on this domain - _acme-challenge.example.com - and the content of the .TXT record will be a random string provided by the ACME server.</p>\n<p>Now that you have everything setup, how do you get your FREE SSL? Below, we will go over the various ways to enable SSL for free on your website:</p>\n<p><strong>1. Certbot</strong> : <a href=\"https://certbot.eff.org/\">certbot</a> is a Linux utility that is simple yet powerful. This tool doesn't share private keys with any servers, and it keeps your private key on the client that is being used to generate the cert.  You can install certbot with the following command on ubuntu:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">$ sudo add-apt-repository ppa:certbot/certbot</span>\n<span class=\"grvsc-line\">$ sudo apt-get update</span>\n<span class=\"grvsc-line\">$ sudo apt-get install certbot</span></code></pre>\n<p>The <a href=\"https://certbot.eff.org/\">certbot site</a> has even more details and information for installing this on other systems.</p>\n<p>Once installed, open the DNS Manager (must do!) and call the following command to get the SSL certificate for your domain.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">sudo certbot --text --agree-tos --email &amp;amp;lt;YOUR EMAIL ID&amp;amp;gt; -d &amp;amp;lt;YOUR DOMAIN&amp;amp;gt; --manual --preferred-challenges dns --expand --renew-by-default  --manual public-ip-logging-ok certonly</span></code></pre>\n<p>This command will request that you add the .TXT record on the subdomain _acme-challenge. Once this is added, simply press any key to generate the SSL certificate. It will show the locations of the certified file.</p>\n<p><strong>2. Online using</strong> <a href=\"https://www.sslforfree.com/\"><strong>https://www.sslforfree.com/</strong></a> : This is also a non-profit site and you can get SSL without any installation; just follow the steps to set up the ACME compliant site structure. They provide an easy step-by-step guide for generating the SSL certificate. Once you work through the guide, you will be able to download a copy of your certificate and include on your webserver.</p>\n<p><strong>3. Other ways</strong> : There are lots of other ways to get the “Let's Encrypt” SSL. <a href=\"https://letsencrypt.org/docs/client-options/\">This page</a> contains a list of ACME clients and libraries, so you can choose to work with whichever one that best suits your needs.</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</style>","frontmatter":{"date":"July 13, 2017","updated_date":null,"description":null,"title":"Get your FREE SSL Certificate!","tags":["Engineering","SSL"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1,"src":"/static/44e96863451de6352d54342c2dd11bf3/bc59e/letsencrypt.png","srcSet":"/static/44e96863451de6352d54342c2dd11bf3/69585/letsencrypt.png 200w,\n/static/44e96863451de6352d54342c2dd11bf3/497c6/letsencrypt.png 400w,\n/static/44e96863451de6352d54342c2dd11bf3/bc59e/letsencrypt.png 512w","sizes":"(max-width: 512px) 100vw, 512px"}}},"author":{"id":"Kundan Singh","github":null,"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":876,"currentPage":147,"type":"///","numPages":161,"pinned":"ee8a4479-3471-53b1-bf62-d0d8dc3faaeb"}},"staticQueryHashes":["1171199041","1384082988","2100481360","23180105","528864852"]}