To keep users registration simple and secure, I have implemented two ways of registration:
Verification Code (only email needed)
Google Auth
Verification Code
When user registers with verification code, he will receive an email with a verification code that he needs to enter in the registration form.
Google Auth
When user registers with Google Auth, he will be redirected to Google’s login page where he can login with his Google account.
Check out the Google Auth docs for more details on how to setup Google Auth.
Login
User can login with Magic Link or with Google Auth.
Magic Link
When user logs in with Magic Link, he will receive an email with a magic link that he needs to click to login.
Google Auth
When user logs in with Google Auth, he will be redirected to Google’s login page where he can login with his Google account.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Larafast","colors":{"primary":"#0D9373","light":"#07C983","dark":"#0D9373"},"favicon":"/logo/favicon.svg","logo":{"light":"https://mintcdn.com/larafast/p7p6xbnL6MINm0mR/logo/larafast-small.png?fit=max\u0026auto=format\u0026n=p7p6xbnL6MINm0mR\u0026q=85\u0026s=e282ae2d477406a3992013a47d0c30c9","dark":"https://mintcdn.com/larafast/p7p6xbnL6MINm0mR/logo/larafast-small-white.png?fit=max\u0026auto=format\u0026n=p7p6xbnL6MINm0mR\u0026q=85\u0026s=79a7301c8c7bd102082ffa9f428e8f0c"},"navbar":{"links":[{"label":"Support","href":"mailto:[email protected]"}],"primary":{"type":"button","label":"Website","href":"https://larafast.com"}},"footer":{"socials":{"twitter":"https://twitter.com/larafastphp","github":"https://github.com/karakhanyans-tools/larafast.git"}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"larafast","hasAudioNarration":false,"actualSubdomain":"larafast","customDomains":["docs.larafast.com"],"gitSource":{"type":"github","owner":"karakhanyans","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6ae91eff1deeea3b72fa104a:success","clientVersion":"0.0.4138","searchFilterCounts":[{"language":"default","tag":"VILT Components","count":38},{"language":"default","tag":"Features","count":35},{"language":"default","tag":"TALL Components","count":34},{"language":"default","tag":"Documentation","count":32},{"language":"default","tag":"Multi-Tenancy","count":29},{"language":"default","tag":"Fast Projects: API","count":14},{"language":"default","tag":"Fast Projects: Directories","count":7},{"language":"default","tag":"Tutorials","count":7},{"language":"default","tag":"Get Started","count":6},{"language":"default","tag":"Auth","count":5}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"fast-projects/directories/features/auth","slug":"/fast-projects/directories/features/auth","pageMetadata":{"title":"User Auth","description":"Magic Links and Verification Codes","icon":"user-shield","href":"/fast-projects/directories/features/auth"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Magic Links and Verification Codes\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`registration`,children:`Registration`}),`\n`,_jsx(_components.p,{children:`To keep users registration simple and secure, I have implemented two ways of registration:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Verification Code (only email needed)`}),`\n`,_jsx(_components.li,{children:`Google Auth`}),`\n`]}),`\n`,_jsx(Heading,{level:`4`,id:`verification-code`,children:`Verification Code`}),`\n`,_jsx(_components.p,{children:`When user registers with verification code, he will receive an email with a verification code that he needs to enter in the registration form.`}),`\n`,_jsx(Heading,{level:`4`,id:`google-auth`,children:`Google Auth`}),`\n`,_jsx(_components.p,{children:`When user registers with Google Auth, he will be redirected to Google’s login page where he can login with his Google account.`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Check out the `,_jsx(_components.a,{href:`/features/social-auth#google`,children:`Google Auth`}),` docs for more details on how to setup Google Auth.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`login`,children:`Login`}),`\n`,_jsx(_components.p,{children:`User can login with Magic Link or with Google Auth.`}),`\n`,_jsx(Heading,{level:`4`,id:`magic-link`,children:`Magic Link`}),`\n`,_jsx(_components.p,{children:`When user logs in with Magic Link, he will receive an email with a magic link that he needs to click to login.`}),`\n`,_jsx(Heading,{level:`4`,id:`google-auth-2`,children:`Google Auth`}),`\n`,_jsx(_components.p,{children:`When user logs in with Google Auth, he will be redirected to Google’s login page where he can login with his Google account.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"User Auth","description":"Magic Links and Verification Codes","icon":"user-shield","href":"/fast-projects/directories/features/auth"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Registration","slug":"registration","depth":2,"children":[{"title":"Verification Code","slug":"verification-code","depth":4,"children":[]},{"title":"Google Auth","slug":"google-auth","depth":4,"children":[]}]},{"title":"Login","slug":"login","depth":2,"children":[{"title":"Magic Link","slug":"magic-link","depth":4,"children":[]},{"title":"Google Auth","slug":"google-auth-2","depth":4,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"larafast","siteName":"Larafast","title":"User Auth - Larafast","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2025-10-27T11:35:24.819Z","originalFileLocation":"fast-projects/directories/features/auth.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Magic Links and Verification Codes\">\u003cmeta data-mint-head name=\"application-name\" content=\"Larafast\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"User Auth - Larafast\">\u003cmeta data-mint-head property=\"og:description\" content=\"Magic Links and Verification Codes\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Larafast\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.larafast.com/fast-projects/directories/features/auth\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://larafast.mintlify.site/_mintlify/api/og/v2?division=Features\u0026amp;title=User+Auth\u0026amp;description=Magic+Links+and+Verification+Codes\u0026amp;theme=9371b70b45db6ce8fc4b435b\u0026amp;signature=29dd82dc84c6c1a8adced5f08d661f98e2961e6488b5ef91c1b96e7316e0c22d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"User Auth - Larafast\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Magic Links and Verification Codes\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://larafast.mintlify.site/_mintlify/api/og/v2?division=Features\u0026amp;title=User+Auth\u0026amp;description=Magic+Links+and+Verification+Codes\u0026amp;theme=9371b70b45db6ce8fc4b435b\u0026amp;signature=29dd82dc84c6c1a8adced5f08d661f98e2961e6488b5ef91c1b96e7316e0c22d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Larafast\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0D9373\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.larafast.com/fast-projects/directories/features/auth\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/fast-projects/directories/features/auth.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.larafast.com/#organization\",\"name\":\"Larafast\",\"url\":\"https://docs.larafast.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/larafast/p7p6xbnL6MINm0mR/logo/larafast-small.png?fit=max\u0026auto=format\u0026n=p7p6xbnL6MINm0mR\u0026q=85\u0026s=e282ae2d477406a3992013a47d0c30c9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.larafast.com#website\",\"name\":\"Larafast\",\"url\":\"https://docs.larafast.com\",\"publisher\":{\"@id\":\"https://docs.larafast.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.larafast.com/fast-projects/directories/features/auth#webpage\",\"url\":\"https://docs.larafast.com/fast-projects/directories/features/auth\",\"name\":\"User Auth\",\"description\":\"Magic Links and Verification Codes\",\"dateModified\":\"2025-10-27T11:35:24.819Z\",\"isPartOf\":{\"@id\":\"https://docs.larafast.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.larafast.com/fast-projects/directories/features/auth#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.larafast.com/fast-projects/directories/features/auth#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Features\",\"item\":\"https://docs.larafast.com/fast-projects/directories/features/admin\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"User Auth\",\"item\":\"https://docs.larafast.com/fast-projects/directories/features/auth\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.larafast.com/fast-projects/directories/features/auth#article\",\"headline\":\"User Auth\",\"name\":\"User Auth\",\"description\":\"Magic Links and Verification Codes\",\"url\":\"https://docs.larafast.com/fast-projects/directories/features/auth\",\"mainEntityOfPage\":{\"@id\":\"https://docs.larafast.com/fast-projects/directories/features/auth#webpage\"},\"dateModified\":\"2025-10-27T11:35:24.819Z\",\"publisher\":{\"@id\":\"https://docs.larafast.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.larafast.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Larafast\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Larafast\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/fast-projects/directories/features/auth.md","siteName":"Larafast","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/larafast-installer"}]},{"tab":"Multi-Tenancy","pages":[{"title":"Multi-Tenancy","href":"/multi-tenancy/intro"}]},{"tab":"VILT Components","pages":[{"title":"VILT Components","href":"/vilt/components/themes-and-ui"}]},{"tab":"TALL Components","pages":[{"title":"TALL Components","href":"/tall/components/themes-and-ui"}]},{"tab":"Fast Projects: Directories","groups":[{"group":"Get Started","pages":[{"title":"Start Here","icon":"arrow-right","href":"/fast-projects/directories/intro"}]},{"group":"Features","pages":[{"title":"Admin Dashboard","sidebarTitle":"Admin","icon":"users","href":"/fast-projects/directories/features/admin"},{"title":"Categories","icon":"layer-group","href":"/fast-projects/directories/features/categories"},{"title":"Products","icon":"list-check","href":"/fast-projects/directories/features/products"},{"title":"Plans","description":"Subscriptions and One-time payments for products","icon":"money-check-dollar","href":"/fast-projects/directories/features/plans"},{"title":"User Auth","icon":"user-shield","href":"/fast-projects/directories/features/auth"}]},{"group":"Demo","pages":[{"title":"Demo","description":"Demo of the Larafast Directories.","icon":"laptop-code","href":"/fast-projects/directories/features/demo"}]}]},{"tab":"Fast Projects: API","pages":[{"title":"Fast Projects: API","href":"/fast-projects/api/intro"}]}]},"basePath":"","title":"User Auth - Larafast","buildId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","deploymentId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","dynamics":[],"chunks":[]}