{"id":5180,"date":"2022-06-27T08:18:34","date_gmt":"2022-06-27T12:18:34","guid":{"rendered":"https:\/\/www.cloudsurph.com\/?p=5180"},"modified":"2022-06-27T08:22:24","modified_gmt":"2022-06-27T12:22:24","slug":"add-user-registration-and-authentication-adonisjs","status":"publish","type":"post","link":"https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/","title":{"rendered":"AdonisJS: Simple User Registration and Authentication Setup"},"content":{"rendered":"<p>AdonisJS: simple user registration and authentication setup. AdonisJS provides a few different approaches to validate your request form data.<\/p>\n<h2><strong>The proper way to handle Request Validation<\/strong><\/h2>\n<p>We will use the Validation continually, we can either use it inside the controller\u2019s method or create a Validator class to validate the incoming requests.<\/p>\n<p>So, in this article, we will provide how to use the validations properly. And we will create an API for the user registration form.<\/p>\n<h3>Installation<\/h3>\n<p>Firstly, we create a new AdonisJS project using the npm package manager.<\/p>\n<h5><em><strong>You can purchase your\u00a0<a href=\"https:\/\/hosting.cloudsurph.com\/\">hosting from Cloudsurph.com<\/a>,\u00a0<a href=\"https:\/\/hosting.cloudsurph.com\/\">Cloudsurph hosting<\/a>\u00a0is a reliable hosting option for business and personal projects. We offer insight and help on system configuration issues and code errors or bugs<\/strong>.<\/em><\/h5>\n<pre class=\"prettyprint\">npm init adonis-ts-app@latest hello-world<\/pre>\n<p>We already published an article for CRUD in AdonisJS, so you can read first our previous article\u00a0on <a href=\"https:\/\/www.cloudsurph.com\/adonisjs-how-to-run-a-simple-crud-operation\/\">How to set up CRUD in AdonisJS<\/a>.<\/p>\n<h3>Controller<\/h3>\n<p>Secondly, we create a controller and add a register method for user authentication.<\/p>\n<pre class=\"prettyprint\">node ace make:controller User<\/pre>\n<p>The controller will be <strong>created at\u00a0<\/strong><strong>app\/Controllers\/Http\/UsersController.ts<\/strong><\/p>\n<p>And add the register method inside the app controller<\/p>\n<pre class=\"prettyprint\">import type { HttpContextContract } from '@ioc:Adonis\/Core\/HttpContext'\r\n\r\nexport default class UsersController {\r\n\r\n    \/**\r\n     * \r\n     * Other methods ...\r\n     * \r\n     **\/\r\n\r\n    public async register({ request }: HttpContextContract) {\r\n\r\n    }\r\n}\r\n<\/pre>\n<h3>Validator<\/h3>\n<p>So, now we can create a validator class and define its parameters<\/p>\n<pre class=\"prettyprint\">node ace make:validator RegisterUser\r\n<\/pre>\n<p>In this case, the validator class will be created at\u00a0<strong>app\/Validators\/RegisterUserValidator.ts<\/strong>\u00a0and it will look like as below:<\/p>\n<pre class=\"prettyprint\">import { schema, CustomMessages, rules } from \"@ioc:Adonis\/Core\/Validator\";\r\nimport type { HttpContextContract } from \"@ioc:Adonis\/Core\/HttpContext\";\r\n\r\nexport default class RegisterUserValidator {\r\n    constructor(protected ctx: HttpContextContract) {}\r\n\r\n    public schema = schema.create({});\r\n\r\n    public messages: CustomMessages = {};\r\n}\r\n<\/pre>\n<p><strong>constructor:<\/strong>\u00a0method accept HTTP context variable<\/p>\n<p><strong>scheme<\/strong>\u00a0used to define parameter rules<\/p>\n<p><strong>messages:<\/strong>\u00a0used to define our custom messages<\/p>\n<p><em><strong>IF you want then buy a good, reliable, secure web\u00a0<a href=\"https:\/\/www.cloudsurph.com\/windows-vps-hosting\/\">hosting<\/a>\u00a0service \u00a0from here:\u00a0<a href=\"https:\/\/hosting.cloudsurph.com\/\">click here<\/a><\/strong><\/em><\/p>\n<h4>Now we need to add the rules:<\/h4>\n<pre class=\"prettyprint\">public schema = schema.create({\r\n    name: schema.string({ trim: true }),\r\n    email: schema.string([\r\n        rules.email(),\r\n        rules.unique({ table: \"users\", column: \"email\" }),\r\n    ]),\r\n    password: schema.string([rules.minLength(6)]),\r\n});\r\n<\/pre>\n<h6>To access the full list of rules go to the official AdonisJS\u00a0<a href=\"https:\/\/docs.adonisjs.com\/reference\/validator\/schema\/string\">documentation<\/a><\/h6>\n<p>Next, we can add our custom messages to the defined rules and you can leave them empty as well and AdonisJS will print default messages<\/p>\n<pre class=\"prettyprint\">public messages = {\r\n    \"name.required\": \"Name is required\",\r\n    \"email.required\": \"Email is required\",\r\n    \"email.email\": \"Email is invalid\",\r\n    \"email.unique\": \"Email already exists\",\r\n    \"password.required\": \"Password is required\",\r\n    \"password.minLength\": \"Password must be at least 6 characters\",\r\n};\r\n<\/pre>\n<h5>Finally, our validator class will look like this below:<\/h5>\n<pre class=\"prettyprint\">import { schema, CustomMessages, rules } from \"@ioc:Adonis\/Core\/Validator\";\r\nimport type { HttpContextContract } from \"@ioc:Adonis\/Core\/HttpContext\";\r\n\r\nexport default class RegisterUserValidator {\r\n    constructor(protected ctx: HttpContextContract) {}\r\n\r\n    public schema = schema.create({\r\n        name: schema.string({ trim: true }),\r\n        email: schema.string([\r\n            rules.email(),\r\n            rules.unique({ table: \"users\", column: \"email\" }),\r\n        ]),\r\n        password: schema.string([rules.minLength(6)]),\r\n    });\r\n\r\n    public messages = {\r\n        \"name.required\": \"Name is required\",\r\n        \"email.required\": \"Email is required\",\r\n        \"email.email\": \"Email is invalid\",\r\n        \"email.unique\": \"Email already exists\",\r\n        \"password.required\": \"Password is required\",\r\n        \"password.minLength\": \"Password must be at least 6 characters\",\r\n    };\r\n}\r\n<\/pre>\n<h3>Back to Controller<\/h3>\n<p>Now, we will use the defined validator class inside our app controller<\/p>\n<pre class=\"prettyprint\">public async register({ request, response }: HttpContextContract) {\r\n    \r\n    \/\/ Payload returns the validated data\r\n    const payload = await request.validate(RegisterUserValidator);\r\n\r\n    const user = await User.create(payload);\r\n\r\n    return response.json(user);\r\n}\r\n<\/pre>\n<p>And finally, we will define the routes for register<\/p>\n<pre class=\"prettyprint\">Route.post(\"\/register\", \"UsersController.register\");\r\n<\/pre>\n<p>All are done!!!<\/p>\n<p>If you enjoyed reading this article and have more questions please reach out to our\u00a0<a href=\"https:\/\/hosting.cloudsurph.com\/submitticket.php?step=2&amp;deptid=1\">support team<\/a>\u00a0via live chat or\u00a0<a href=\"mailto:support@cloudsurph.com\">email<\/a>\u00a0and we would be glad to help you. we provide server\u00a0<a href=\"https:\/\/hosting.cloudsurph.com\/\">hosting<\/a>\u00a0for all types of need and we can even get your\u00a0<a href=\"https:\/\/hosting.cloudsurph.com\/\">server<\/a>\u00a0up and running with the service of your choice.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AdonisJS: simple user registration and authentication setup. AdonisJS provides a few different approaches to validate your request form data. The proper way to handle Request Validation We will use the Validation continually, we can either use it inside the controller\u2019s method or create a Validator class to validate the incoming requests. So, in this article, [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":5181,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[152,25,150,151,44,1,31],"tags":[54,47,105,103,48,113],"class_list":["post-5180","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-adonisjs","category-web-hosting-virtualization","category-laravel","category-react-js","category-kvm-xen","category-virtual-private-servers","category-web-hosting","tag-best-vps-hosting-server-maryland","tag-cheap-cloud-servers","tag-cheap-storage-server-hosting","tag-cheapest-vps","tag-dedicated-server-hosting-in-washington-d-c","tag-speed-test-vps"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AdonisJS: Simple User Registration and Authentication Setup -<\/title>\n<meta name=\"description\" content=\"add user registration and authentication adonisjs, simple user registration, How to add user registration into adonisjs\" \/>\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.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AdonisJS: Simple User Registration and Authentication Setup -\" \/>\n<meta property=\"og:description\" content=\"add user registration and authentication adonisjs, simple user registration, How to add user registration into adonisjs\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/\" \/>\n<meta property=\"og:site_name\" content=\"Cloudsurph Web Hosting Washington D.C.\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/CloudSurph\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-06-27T12:18:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-06-27T12:22:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cloudsurph.com\/wp-content\/uploads\/2022\/06\/simple-user-registration-and-authenticaiton-setup.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Rony\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@cloudsurph\" \/>\n<meta name=\"twitter:site\" content=\"@Cloud_Surph\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rony\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/add-user-registration-and-authentication-adonisjs\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/add-user-registration-and-authentication-adonisjs\\\/\"},\"author\":{\"name\":\"Rony\",\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/#\\\/schema\\\/person\\\/ac9b4dd136d96e50d5f29c560191e7ed\"},\"headline\":\"AdonisJS: Simple User Registration and Authentication Setup\",\"datePublished\":\"2022-06-27T12:18:34+00:00\",\"dateModified\":\"2022-06-27T12:22:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/add-user-registration-and-authentication-adonisjs\\\/\"},\"wordCount\":394,\"publisher\":{\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/add-user-registration-and-authentication-adonisjs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.cloudsurph.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/simple-user-registration-and-authenticaiton-setup.jpg\",\"keywords\":[\"Best VPS hosting server Maryland\",\"Cheap Cloud Servers\",\"Cheap Storage Server Hosting\",\"Cheapest VPS\",\"Dedicated Server Hosting in Washington D.C\",\"Speed test VPS\"],\"articleSection\":[\"AdonisJS\",\"Cloud Hosting\",\"Laravel\",\"React Js\",\"Virtualization\",\"VPS Servers\",\"Web Hosting\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/add-user-registration-and-authentication-adonisjs\\\/\",\"url\":\"https:\\\/\\\/www.cloudsurph.com\\\/add-user-registration-and-authentication-adonisjs\\\/\",\"name\":\"AdonisJS: Simple User Registration and Authentication Setup -\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/add-user-registration-and-authentication-adonisjs\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/add-user-registration-and-authentication-adonisjs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.cloudsurph.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/simple-user-registration-and-authenticaiton-setup.jpg\",\"datePublished\":\"2022-06-27T12:18:34+00:00\",\"dateModified\":\"2022-06-27T12:22:24+00:00\",\"description\":\"add user registration and authentication adonisjs, simple user registration, How to add user registration into adonisjs\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/add-user-registration-and-authentication-adonisjs\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.cloudsurph.com\\\/add-user-registration-and-authentication-adonisjs\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/add-user-registration-and-authentication-adonisjs\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.cloudsurph.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/simple-user-registration-and-authenticaiton-setup.jpg\",\"contentUrl\":\"https:\\\/\\\/www.cloudsurph.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/simple-user-registration-and-authenticaiton-setup.jpg\",\"width\":1600,\"height\":900},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/add-user-registration-and-authentication-adonisjs\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.cloudsurph.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AdonisJS: Simple User Registration and Authentication Setup\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/#website\",\"url\":\"https:\\\/\\\/www.cloudsurph.com\\\/\",\"name\":\"Cloudsurph Web Hosting Washington D.C.\",\"description\":\"Dedicated Server Hosting\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.cloudsurph.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/#organization\",\"name\":\"CloudSurph Technology Solutions\",\"url\":\"https:\\\/\\\/www.cloudsurph.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.cloudsurph.com\\\/wp-content\\\/uploads\\\/2016\\\/04\\\/cloudsurph-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.cloudsurph.com\\\/wp-content\\\/uploads\\\/2016\\\/04\\\/cloudsurph-logo.png\",\"width\":2348,\"height\":1692,\"caption\":\"CloudSurph Technology Solutions\"},\"image\":{\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/CloudSurph\\\/\",\"https:\\\/\\\/x.com\\\/Cloud_Surph\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.cloudsurph.com\\\/#\\\/schema\\\/person\\\/ac9b4dd136d96e50d5f29c560191e7ed\",\"name\":\"Rony\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/40163fe1eb49d5eddd81954e8ad5122633e141df15b0733d07fbe4a156688ba5?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/40163fe1eb49d5eddd81954e8ad5122633e141df15b0733d07fbe4a156688ba5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/40163fe1eb49d5eddd81954e8ad5122633e141df15b0733d07fbe4a156688ba5?s=96&d=mm&r=g\",\"caption\":\"Rony\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/cloudsurph\"],\"url\":\"https:\\\/\\\/www.cloudsurph.com\\\/author\\\/ron\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AdonisJS: Simple User Registration and Authentication Setup -","description":"add user registration and authentication adonisjs, simple user registration, How to add user registration into adonisjs","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.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/","og_locale":"en_US","og_type":"article","og_title":"AdonisJS: Simple User Registration and Authentication Setup -","og_description":"add user registration and authentication adonisjs, simple user registration, How to add user registration into adonisjs","og_url":"https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/","og_site_name":"Cloudsurph Web Hosting Washington D.C.","article_publisher":"https:\/\/www.facebook.com\/CloudSurph\/","article_published_time":"2022-06-27T12:18:34+00:00","article_modified_time":"2022-06-27T12:22:24+00:00","og_image":[{"width":1600,"height":900,"url":"https:\/\/www.cloudsurph.com\/wp-content\/uploads\/2022\/06\/simple-user-registration-and-authenticaiton-setup.jpg","type":"image\/jpeg"}],"author":"Rony","twitter_card":"summary_large_image","twitter_creator":"@cloudsurph","twitter_site":"@Cloud_Surph","twitter_misc":{"Written by":"Rony","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/#article","isPartOf":{"@id":"https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/"},"author":{"name":"Rony","@id":"https:\/\/www.cloudsurph.com\/#\/schema\/person\/ac9b4dd136d96e50d5f29c560191e7ed"},"headline":"AdonisJS: Simple User Registration and Authentication Setup","datePublished":"2022-06-27T12:18:34+00:00","dateModified":"2022-06-27T12:22:24+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/"},"wordCount":394,"publisher":{"@id":"https:\/\/www.cloudsurph.com\/#organization"},"image":{"@id":"https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cloudsurph.com\/wp-content\/uploads\/2022\/06\/simple-user-registration-and-authenticaiton-setup.jpg","keywords":["Best VPS hosting server Maryland","Cheap Cloud Servers","Cheap Storage Server Hosting","Cheapest VPS","Dedicated Server Hosting in Washington D.C","Speed test VPS"],"articleSection":["AdonisJS","Cloud Hosting","Laravel","React Js","Virtualization","VPS Servers","Web Hosting"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/","url":"https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/","name":"AdonisJS: Simple User Registration and Authentication Setup -","isPartOf":{"@id":"https:\/\/www.cloudsurph.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/#primaryimage"},"image":{"@id":"https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cloudsurph.com\/wp-content\/uploads\/2022\/06\/simple-user-registration-and-authenticaiton-setup.jpg","datePublished":"2022-06-27T12:18:34+00:00","dateModified":"2022-06-27T12:22:24+00:00","description":"add user registration and authentication adonisjs, simple user registration, How to add user registration into adonisjs","breadcrumb":{"@id":"https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/#primaryimage","url":"https:\/\/www.cloudsurph.com\/wp-content\/uploads\/2022\/06\/simple-user-registration-and-authenticaiton-setup.jpg","contentUrl":"https:\/\/www.cloudsurph.com\/wp-content\/uploads\/2022\/06\/simple-user-registration-and-authenticaiton-setup.jpg","width":1600,"height":900},{"@type":"BreadcrumbList","@id":"https:\/\/www.cloudsurph.com\/add-user-registration-and-authentication-adonisjs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cloudsurph.com\/"},{"@type":"ListItem","position":2,"name":"AdonisJS: Simple User Registration and Authentication Setup"}]},{"@type":"WebSite","@id":"https:\/\/www.cloudsurph.com\/#website","url":"https:\/\/www.cloudsurph.com\/","name":"Cloudsurph Web Hosting Washington D.C.","description":"Dedicated Server Hosting","publisher":{"@id":"https:\/\/www.cloudsurph.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cloudsurph.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.cloudsurph.com\/#organization","name":"CloudSurph Technology Solutions","url":"https:\/\/www.cloudsurph.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.cloudsurph.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.cloudsurph.com\/wp-content\/uploads\/2016\/04\/cloudsurph-logo.png","contentUrl":"https:\/\/www.cloudsurph.com\/wp-content\/uploads\/2016\/04\/cloudsurph-logo.png","width":2348,"height":1692,"caption":"CloudSurph Technology Solutions"},"image":{"@id":"https:\/\/www.cloudsurph.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/CloudSurph\/","https:\/\/x.com\/Cloud_Surph"]},{"@type":"Person","@id":"https:\/\/www.cloudsurph.com\/#\/schema\/person\/ac9b4dd136d96e50d5f29c560191e7ed","name":"Rony","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/40163fe1eb49d5eddd81954e8ad5122633e141df15b0733d07fbe4a156688ba5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/40163fe1eb49d5eddd81954e8ad5122633e141df15b0733d07fbe4a156688ba5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/40163fe1eb49d5eddd81954e8ad5122633e141df15b0733d07fbe4a156688ba5?s=96&d=mm&r=g","caption":"Rony"},"sameAs":["https:\/\/x.com\/cloudsurph"],"url":"https:\/\/www.cloudsurph.com\/author\/ron\/"}]}},"_links":{"self":[{"href":"https:\/\/www.cloudsurph.com\/wp-json\/wp\/v2\/posts\/5180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cloudsurph.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cloudsurph.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudsurph.com\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudsurph.com\/wp-json\/wp\/v2\/comments?post=5180"}],"version-history":[{"count":4,"href":"https:\/\/www.cloudsurph.com\/wp-json\/wp\/v2\/posts\/5180\/revisions"}],"predecessor-version":[{"id":5186,"href":"https:\/\/www.cloudsurph.com\/wp-json\/wp\/v2\/posts\/5180\/revisions\/5186"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cloudsurph.com\/wp-json\/wp\/v2\/media\/5181"}],"wp:attachment":[{"href":"https:\/\/www.cloudsurph.com\/wp-json\/wp\/v2\/media?parent=5180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cloudsurph.com\/wp-json\/wp\/v2\/categories?post=5180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cloudsurph.com\/wp-json\/wp\/v2\/tags?post=5180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}