{"id":157,"date":"2017-03-03T11:39:47","date_gmt":"2017-03-03T05:39:47","guid":{"rendered":"https:\/\/intentwise.com\/blog\/?p=157"},"modified":"2024-02-06T06:34:28","modified_gmt":"2024-02-06T14:34:28","slug":"rails-authentication-frameworks","status":"publish","type":"post","link":"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/","title":{"rendered":"Rails Authentication Frameworks","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<figure><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter size-full wp-image-1321\" src=\"https:\/\/intentwise.com\/blog\/wp-content\/uploads\/2017\/03\/rails-authentication.jpeg\" alt=\"rails authentication\" width=\"370\" height=\"370\"><\/figure>\n<p>Authentication within any web application is an important aspect and cannot be taken lightly. There are many aspects that need to be considered such as security, maintainability, usability. <a href=\"https:\/\/rubyonrails.org\/\">Ruby on Rails<\/a> provides various authentication frameworks in the form of gems like Cancan, Auth-logic, Devise, etc. In a Ruby on Rails application, we can provide authentication without any of these authentication frameworks, but that\u2019s not recommended unless there are some serious requirements on how you handle security and encryption. Some of these frameworks have been used by many and are proven to be robust.<\/p>\n<p>Devise is an authentication framework most popular among rails developers. Devise is one of the most dynamic authentication frameworks out there, its less time consuming and can be set up within minutes. Once setup you can easily modify the UI aspects provided by default and changing it to use Bootstrap.<\/p>\n<p>What does it take to set up devise?<\/p>\n<ol>\n<li>Add devise gem in your app <strong><em>Gemfile<\/em><\/strong> <strong><em>gem \u2018devise\u2019<\/em><\/strong><em> \u2019 <\/em>and run <em>\u2018<\/em><strong><em>bundle install<\/em><\/strong><em>\u2019<\/em> in your&nbsp;terminal<\/li>\n<li>Install devise by running <em>\u2018<\/em><strong><em>rails generate devise: install<\/em><\/strong><em>\u2019<\/em><\/li>\n<\/ol>\n<p>Some configuration settings that are&nbsp;needed:<\/p>\n<ul>\n<li><strong><em>config\/environments\/development.rb:<\/em><\/strong><\/li>\n<\/ul>\n<blockquote><p>Set the default url&nbsp;options<\/p><\/blockquote>\n<blockquote><p>\u2018<strong>Config.action_mailer.default_url_options = { host: \u2018localhost\u2019, port: 3000 }<\/strong>&nbsp;\u2019<\/p><\/blockquote>\n<ul>\n<li><strong><em>config\/routes.rb<\/em><\/strong><\/li>\n<\/ul>\n<blockquote><p>Set your root url like \u2018 <strong>root to: \u2018home#index<\/strong>\u2019.<\/p><\/blockquote>\n<ul>\n<li><strong><em>app\/views\/layouts\/application.html.erb<\/em><\/strong><\/li>\n<\/ul>\n<blockquote><p>Set flash&nbsp;messages<\/p><\/blockquote>\n<blockquote><p>before &lt;%= yield %&gt; like&nbsp;this<\/p><\/blockquote>\n<blockquote><p>&lt;p class=\u201dnotice\u201d&gt;&lt;%= notice&nbsp;%&gt;&lt;\/p&gt;<\/p><\/blockquote>\n<blockquote><p>&lt;p class=\u201dalert\u201d&gt;&lt;%= alert&nbsp;%&gt;&lt;\/p&gt;<\/p><\/blockquote>\n<p>This basically gives you success and failure messages.<\/p>\n<p>3. Add \u2018<strong>rails g devise: views<\/strong>\u2019 for further customization of your views.<\/p>\n<p>4. Add model by running \u2018<strong>rails g devise&nbsp;User<\/strong>\u2019<\/p>\n<p>5. Run \u2018<strong>rake db: migrate<\/strong>\u2019, this command migrates the user table to the database .<\/p>\n<p>6. Add the logout link in <strong><em>\u2018app\/views\/home\/index.html.erb\u2019<\/em><\/strong>.<\/p>\n<p>7. Add \u2018<strong>before_action&nbsp;:authenticate_user!<\/strong>\u2019 in <strong><em>\u2018app\/controllers\/application_controller.rb\u2019. <\/em><\/strong>This means that the user should first sign-in before going into the app.<\/p>\n<p>8. Restart the server and you are good to go.<\/p>\n<figure><img decoding=\"async\" class=\"aligncenter size-full wp-image-1323 lazyload\" data-src=\"https:\/\/intentwise.com\/blog\/wp-content\/uploads\/2017\/03\/rails-authentication-local-server.png\" alt=\"rails authentication local server\" width=\"1024\" height=\"449\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/449;\"><\/figure>\n<p>Here are some of the steps to add bootstrap to your views.<\/p>\n<ol>\n<li>Add \u2018 <strong>gem \u2018twitter-bootstrap-rails\u2019<\/strong> \u2019 in your gem file and then run \u2018<strong>bundle install<\/strong>\u2019.<\/li>\n<li>Run \u2018<strong>rails g bootstrap: install static<\/strong>\u2019, this basically installs the static theme.<\/li>\n<li>Run \u2018<strong>rails g bootstrap: layout application<\/strong>\u2019 to add bootstrap to your application layout. In this step, it will ask whether to overwrite your application.html.erb file, type \u2018<strong>Y<\/strong>\u2019 and press enter. This modifies your application.html.erb.<\/li>\n<\/ol>\n<figure><img decoding=\"async\" class=\"aligncenter size-full wp-image-1322 lazyload\" data-src=\"https:\/\/intentwise.com\/blog\/wp-content\/uploads\/2017\/03\/rails-authentication-gems.png\" alt=\"rails authentication gems\" width=\"810\" height=\"174\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 810px; --smush-placeholder-aspect-ratio: 810\/174;\"><\/figure>\n<p>4. Add \u2018 <strong>gem \u2018devise-bootstrap-views\u2019<\/strong> \u2019 in your gem file and run \u2018<strong>bundle install<\/strong>\u2019.<\/p>\n<p>5. In file, <strong><em>app\/assets\/stylesheets\/application.css<\/em><\/strong> add<\/p>\n<blockquote><p>\u2018<strong>*= require devise_bootstrap_views<\/strong>\u2019&nbsp;.<\/p><\/blockquote>\n<p>6. Run \u2018<strong>rails g devise views: locale en<\/strong>\u2019 this will generate <strong><em>config\/locales\/devise.views.en.yml.<\/em><\/strong><\/p>\n<p>7. Run \u2018<strong>rails g devise views:bootstrap_templates<\/strong>\u2019 this generator will copy all views to your application and you can change the files based on your needs.<\/p>\n<p>8. Restart server and you can see the bootstrap changes.<\/p>\n<figure><img decoding=\"async\" class=\"aligncenter size-full wp-image-1324 lazyload\" data-src=\"https:\/\/intentwise.com\/blog\/wp-content\/uploads\/2017\/03\/rails-login.png\" alt=\"rails login\" width=\"1024\" height=\"449\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/449;\"><\/figure>\n<p>Note: Here in the above example we talked about using rails gem. However, we use bower to install all UI related components within our rails application. We will publish another topic on how to use bower within rails for all UI related dependencies.<\/p>\n<p><em>Read our post &#8220;<a href=\"https:\/\/www.intentwise.com\/blog\/technology\/behaviour-driven-testing-with-rails\/\">Behaviour Driven Development and Testing in Rails<\/a>&#8221; to learn how to use Ruby on Rails testing frameworks such as RSpec, Capybara, Cucumber to enable test driven development (TDD).<\/em><\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Authentication within any web application is an important aspect and cannot be taken lightly. There are many aspects that need to be considered such as security, maintainability, usability. Ruby on Rails provides various authentication frameworks in the form of gems like Cancan, Auth-logic, Devise, etc. In a Ruby on Rails application, we can provide authentication [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":4,"featured_media":22892,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","cybocfi_hide_featured_image":"yes","footnotes":""},"categories":[10],"tags":[9],"class_list":["post-157","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-cloud-data-infrastructure"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Rails Authentication Frameworks<\/title>\n<meta name=\"description\" content=\"Authentication is important for web applications. Ruby on Rails provides authentication frameworks in form of gems like Cancan, Auth-logic, Devise.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rails Authentication Frameworks\" \/>\n<meta property=\"og:description\" content=\"Authentication is important for web applications. Ruby on Rails provides authentication frameworks in form of gems like Cancan, Auth-logic, Devise.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/\" \/>\n<meta property=\"og:site_name\" content=\"Intentwise Blog\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/ragskashyap\" \/>\n<meta property=\"article:published_time\" content=\"2017-03-03T05:39:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-06T14:34:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.intentwise.com\/blog\/wp-content\/uploads\/2017\/03\/IW-Featured-Images-15.png\" \/>\n\t<meta property=\"og:image:width\" content=\"700\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Raghu Kashyap\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ragskashyap\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Raghu Kashyap\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/rails-authentication-frameworks\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/rails-authentication-frameworks\\\/\"},\"author\":{\"name\":\"Raghu Kashyap\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#\\\/schema\\\/person\\\/2ee23f4b06970f050e08dc0add723572\"},\"headline\":\"Rails Authentication Frameworks\",\"datePublished\":\"2017-03-03T05:39:47+00:00\",\"dateModified\":\"2024-02-06T14:34:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/rails-authentication-frameworks\\\/\"},\"wordCount\":569,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/rails-authentication-frameworks\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/03\\\/IW-Featured-Images-15.png\",\"keywords\":[\"Cloud Data Infrastructure\"],\"articleSection\":[\"Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/rails-authentication-frameworks\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/rails-authentication-frameworks\\\/\",\"url\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/rails-authentication-frameworks\\\/\",\"name\":\"Rails Authentication Frameworks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/rails-authentication-frameworks\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/rails-authentication-frameworks\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/03\\\/IW-Featured-Images-15.png\",\"datePublished\":\"2017-03-03T05:39:47+00:00\",\"dateModified\":\"2024-02-06T14:34:28+00:00\",\"description\":\"Authentication is important for web applications. Ruby on Rails provides authentication frameworks in form of gems like Cancan, Auth-logic, Devise.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/rails-authentication-frameworks\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/rails-authentication-frameworks\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/rails-authentication-frameworks\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/.\\\/technology\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rails Authentication Frameworks\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/\",\"name\":\"Intentwise Blog\",\"description\":\"Amazon Analytics &amp; Advertising Software\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#organization\",\"name\":\"Intentwise\",\"url\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/favicon256.png\",\"contentUrl\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/favicon256.png\",\"width\":256,\"height\":256,\"caption\":\"Intentwise\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#\\\/schema\\\/person\\\/2ee23f4b06970f050e08dc0add723572\",\"name\":\"Raghu Kashyap\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/lh3.googleusercontent.com\\\/a\\\/ACg8ocKsh7N3FROrYn40qt13SBywMxAdYxWpCZiEEhbZxcVS5sy0rFSw\",\"url\":\"https:\\\/\\\/lh3.googleusercontent.com\\\/a\\\/ACg8ocKsh7N3FROrYn40qt13SBywMxAdYxWpCZiEEhbZxcVS5sy0rFSw\",\"contentUrl\":\"https:\\\/\\\/lh3.googleusercontent.com\\\/a\\\/ACg8ocKsh7N3FROrYn40qt13SBywMxAdYxWpCZiEEhbZxcVS5sy0rFSw\",\"caption\":\"Raghu Kashyap\"},\"description\":\"I help Advertisers on Marketplaces such as Amazon, Walmart, Way-fair, Overstock, and Instacart leverage the Intentwise technology platform to scale better. Additionally, I oversee our product development, Customer Success, and Marketing initiatives.\",\"sameAs\":[\"https:\\\/\\\/kashyaps.com\",\"https:\\\/\\\/www.facebook.com\\\/ragskashyap\",\"https:\\\/\\\/www.instagram.com\\\/ragskashyap\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/raghukashyap\\\/\",\"https:\\\/\\\/x.com\\\/ragskashyap\"],\"honorificPrefix\":\"Mr\",\"gender\":\"male\",\"knowsAbout\":[\"advertising\",\"marketing\",\"Data platform\",\"technology\"],\"knowsLanguage\":[\"English\",\"Kannada\",\"Tamil\",\"Telugu\",\"Hindi\"],\"jobTitle\":\"CTO, Founder\",\"worksFor\":\"Intentwise\",\"url\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/author\\\/raghukashyap\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Rails Authentication Frameworks","description":"Authentication is important for web applications. Ruby on Rails provides authentication frameworks in form of gems like Cancan, Auth-logic, Devise.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/","og_locale":"en_US","og_type":"article","og_title":"Rails Authentication Frameworks","og_description":"Authentication is important for web applications. Ruby on Rails provides authentication frameworks in form of gems like Cancan, Auth-logic, Devise.","og_url":"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/","og_site_name":"Intentwise Blog","article_author":"https:\/\/www.facebook.com\/ragskashyap","article_published_time":"2017-03-03T05:39:47+00:00","article_modified_time":"2024-02-06T14:34:28+00:00","og_image":[{"width":700,"height":400,"url":"https:\/\/www.intentwise.com\/blog\/wp-content\/uploads\/2017\/03\/IW-Featured-Images-15.png","type":"image\/png"}],"author":"Raghu Kashyap","twitter_card":"summary_large_image","twitter_creator":"@ragskashyap","twitter_misc":{"Written by":"Raghu Kashyap","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/#article","isPartOf":{"@id":"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/"},"author":{"name":"Raghu Kashyap","@id":"https:\/\/www.intentwise.com\/blog\/#\/schema\/person\/2ee23f4b06970f050e08dc0add723572"},"headline":"Rails Authentication Frameworks","datePublished":"2017-03-03T05:39:47+00:00","dateModified":"2024-02-06T14:34:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/"},"wordCount":569,"commentCount":0,"publisher":{"@id":"https:\/\/www.intentwise.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/#primaryimage"},"thumbnailUrl":"https:\/\/www.intentwise.com\/blog\/wp-content\/uploads\/2017\/03\/IW-Featured-Images-15.png","keywords":["Cloud Data Infrastructure"],"articleSection":["Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/","url":"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/","name":"Rails Authentication Frameworks","isPartOf":{"@id":"https:\/\/www.intentwise.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/#primaryimage"},"image":{"@id":"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/#primaryimage"},"thumbnailUrl":"https:\/\/www.intentwise.com\/blog\/wp-content\/uploads\/2017\/03\/IW-Featured-Images-15.png","datePublished":"2017-03-03T05:39:47+00:00","dateModified":"2024-02-06T14:34:28+00:00","description":"Authentication is important for web applications. Ruby on Rails provides authentication frameworks in form of gems like Cancan, Auth-logic, Devise.","breadcrumb":{"@id":"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.intentwise.com\/blog\/technology\/rails-authentication-frameworks\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Technology","item":"https:\/\/www.intentwise.com\/blog\/.\/technology\/"},{"@type":"ListItem","position":2,"name":"Rails Authentication Frameworks"}]},{"@type":"WebSite","@id":"https:\/\/www.intentwise.com\/blog\/#website","url":"https:\/\/www.intentwise.com\/blog\/","name":"Intentwise Blog","description":"Amazon Analytics &amp; Advertising Software","publisher":{"@id":"https:\/\/www.intentwise.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.intentwise.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.intentwise.com\/blog\/#organization","name":"Intentwise","url":"https:\/\/www.intentwise.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intentwise.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.intentwise.com\/blog\/wp-content\/uploads\/2021\/07\/favicon256.png","contentUrl":"https:\/\/www.intentwise.com\/blog\/wp-content\/uploads\/2021\/07\/favicon256.png","width":256,"height":256,"caption":"Intentwise"},"image":{"@id":"https:\/\/www.intentwise.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.intentwise.com\/blog\/#\/schema\/person\/2ee23f4b06970f050e08dc0add723572","name":"Raghu Kashyap","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocKsh7N3FROrYn40qt13SBywMxAdYxWpCZiEEhbZxcVS5sy0rFSw","url":"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocKsh7N3FROrYn40qt13SBywMxAdYxWpCZiEEhbZxcVS5sy0rFSw","contentUrl":"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocKsh7N3FROrYn40qt13SBywMxAdYxWpCZiEEhbZxcVS5sy0rFSw","caption":"Raghu Kashyap"},"description":"I help Advertisers on Marketplaces such as Amazon, Walmart, Way-fair, Overstock, and Instacart leverage the Intentwise technology platform to scale better. Additionally, I oversee our product development, Customer Success, and Marketing initiatives.","sameAs":["https:\/\/kashyaps.com","https:\/\/www.facebook.com\/ragskashyap","https:\/\/www.instagram.com\/ragskashyap\/","https:\/\/www.linkedin.com\/in\/raghukashyap\/","https:\/\/x.com\/ragskashyap"],"honorificPrefix":"Mr","gender":"male","knowsAbout":["advertising","marketing","Data platform","technology"],"knowsLanguage":["English","Kannada","Tamil","Telugu","Hindi"],"jobTitle":"CTO, Founder","worksFor":"Intentwise","url":"https:\/\/www.intentwise.com\/blog\/author\/raghukashyap\/"}]}},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/posts\/157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/comments?post=157"}],"version-history":[{"count":0,"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/posts\/157\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/media\/22892"}],"wp:attachment":[{"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/media?parent=157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/categories?post=157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/tags?post=157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}