Let visitors sign in to your site with Sign in with Webstorio — sessions, auth pages, and protected experiences.
User Authentication lets visitors create an account on your published site and sign in with Sign in with Webstorio — Webstorio’s platform OAuth flow. Signed-in users get a site session scoped to your project.Use it for member areas, order history, signed-in-only App Data writes, and personalized pages.Available on: Growth plan and above.
The fastest way to wire up sign-in is to ask the AI builder (see the prompts below). Editing page code yourself? Pages manage sessions with window.webstorio auth methods — start sign-in with signInWithWebstorio, read the visitor with getSession, and end the session with signOut. On sign-in pages, if getSession() already returns a user, redirect them onward instead of showing the button again.→ Methods, parameters, and examples: Auth SDK reference
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Webstorio","description":"Documentation for Webstorio — the AI-powered web builder and hosting platform.","colors":{"primary":"#0284C7","light":"#38BDF8","dark":"#059669"},"logo":{"light":"https://mintcdn.com/webstorio/A8Y1yqNjHcD0y95T/logo/light.png?fit=max\u0026auto=format\u0026n=A8Y1yqNjHcD0y95T\u0026q=85\u0026s=b0e6f3a9e94e7bf0d2dd74dbd91d0e49","dark":"https://mintcdn.com/webstorio/A8Y1yqNjHcD0y95T/logo/dark.png?fit=max\u0026auto=format\u0026n=A8Y1yqNjHcD0y95T\u0026q=85\u0026s=183a3d9219d422a03bbc6b042cc3f167","href":"https://webstorio.com"},"favicon":"https://mintcdn.com/webstorio/QNkCuZ8qIGxQrgMr/favicon.ico?fit=max\u0026auto=format\u0026n=QNkCuZ8qIGxQrgMr\u0026q=85\u0026s=0ce43928483b66a8632d94e2329d0979","appearance":{"default":"dark"},"background":{"decoration":"gradient","color":{"light":"#F8FAFC","dark":"#0C0F14"}},"navbar":{"links":[{"href":"https://webstorio.com/pricing","label":"Pricing"},{"href":"https://blog.webstorio.com","label":"Blog"}],"primary":{"type":"button","label":"Get started","href":"https://webstorio.com"}},"footer":{"socials":{"website":"https://webstorio.com"}},"icons":{"library":"lucide"},"styling":{"codeblocks":"dark","latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"webstorio","hasAudioNarration":false,"actualSubdomain":"webstorio","customDomains":["docs.webstorio.com"],"gitSource":{"type":"github","owner":"webstorio","repo":"webstorio-platform","deployBranch":"release","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"cbcf6bf3-e734-491b-a82f-45b65bee1235","liveDeploymentHistoryId":"6ae3209386c7ae22426d1ccf","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae3209386c7ae22426d1ccf"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae3209386c7ae22426d1ccf","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Documentation","count":15},{"language":"default","tag":"How-to","count":13},{"language":"default","tag":"References","count":12},{"language":"default","tag":"Developer","count":11},{"language":"default","tag":"Explanation","count":8},{"language":"default","tag":"Client SDK","count":6},{"language":"default","tag":"Get started","count":4},{"language":"default","tag":"Overview","count":2},{"language":"default","tag":"Changelog","count":2},{"language":"default","tag":"CLI","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"guides/user-authentication","slug":"/guides/user-authentication","pageMetadata":{"title":"User Authentication","description":"Let visitors sign in to your site with Sign in with Webstorio — sessions, auth pages, and protected experiences.","icon":"lock","href":"/guides/user-authentication"},"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: \"Let visitors sign in to your site with Sign in with Webstorio — sessions, auth pages, and protected experiences.\"\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`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Mermaid,Table,Tip,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`User Authentication`}),` lets visitors create an account on your published site and sign in with `,_jsx(_components.strong,{children:`Sign in with Webstorio`}),` — Webstorio’s platform OAuth flow. Signed-in users get a `,_jsx(_components.strong,{children:`site session`}),` scoped to your project.`]}),`\n`,_jsx(_components.p,{children:`Use it for member areas, order history, signed-in-only App Data writes, and personalized pages.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Available on:`}),` Growth plan and above.`]}),`\n`,_jsx(Heading,{level:`2`,id:`when-to-use-it`,children:`When to use it`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Use authentication when…`}),_jsx(_components.th,{children:`Skip it when…`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Visitors need accounts (orders, profiles, dashboards)`}),_jsx(_components.td,{children:`The site is fully public with no per-user data`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`App Data tables use signed-in read/write presets`}),_jsx(_components.td,{children:`Forms alone are enough for one-way submissions`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`You show `,_jsx(_components.strong,{children:`My orders`}),` or account pages`]}),_jsx(_components.td,{children:`You only need CMS or marketing pages`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`how-sign-in-works`,children:`How sign-in works`}),`\n`,_jsx(Mermaid,{chart:`sequenceDiagram\n participant Visitor\n participant Site as Your published site\n participant WS as Webstorio OAuth\n participant API as Site auth API\n\n Visitor->>Site: Click Sign in with Webstorio\n Site->>WS: OAuth authorize\n WS->>Visitor: Sign in / consent\n WS->>API: Callback with code\n API->>Site: Session cookie + redirect\n Visitor->>Site: Signed-in pages`}),`\n`,_jsxs(_components.p,{children:[`Each visitor who signs in becomes a `,_jsx(_components.strong,{children:`site user`}),` in your project. You can view and manage them under `,_jsx(_components.strong,{children:`Auth → Users`}),` in the dashboard.`]}),`\n`,_jsx(Heading,{level:`2`,id:`step-1-—-enable-user-authentication`,children:`Step 1 — Enable User Authentication`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open your `,_jsx(_components.strong,{children:`project dashboard`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`Features`}),` and enable `,_jsx(_components.strong,{children:`User Authentication`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Open `,_jsx(_components.strong,{children:`Auth`}),` in the project sidebar.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`step-2-—-create-auth-pages`,children:`Step 2 — Create auth pages`}),`\n`,_jsx(_components.p,{children:`Webstorio scaffolds default sign-in and account pages.`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`Auth → Settings`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Create auth pages`}),` (or equivalent scaffold action).`]}),`\n`,_jsxs(_components.li,{children:[`Webstorio adds:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Sign-in page`}),` — default path `,_jsx(_components.code,{children:`/auth/sign-in`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Account page`}),` — profile and sign-out for signed-in visitors`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Customize layout and copy in the page editor like any other page.`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Ask the AI: `,_jsx(_components.em,{children:`“Style the sign-in page to match my brand colors”`}),` after\nscaffolding.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`step-3-—-configure-auth-settings`,children:`Step 3 — Configure auth settings`}),`\n`,_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Auth → Settings`}),`:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`Purpose`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Sign-in page path`})}),_jsxs(_components.td,{children:[`Where visitors go to sign in (default `,_jsx(_components.code,{children:`/auth/sign-in`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Redirect after sign-in`})}),_jsxs(_components.td,{children:[`Path after successful login (default `,_jsx(_components.code,{children:`/`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Allowed redirect URIs`})}),_jsxs(_components.td,{children:[`Extra callback URLs — required when using `,_jsx(_components.strong,{children:`custom domains`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Callback URLs`})}),_jsx(_components.td,{children:`OAuth endpoints for your subdomain and verified custom domains`})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`After adding a `,_jsx(_components.strong,{children:`custom domain`}),`, open Auth settings and confirm callback URLs\nare listed and verified. Add any extra redirect URIs your pages need.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`step-4-—-manage-site-users`,children:`Step 4 — Manage site users`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Auth → Users`}),` lists everyone who has signed in to your site.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`See email, name, status, and sign-up date`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Disable`}),` users to block sign-in without deleting history`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Remove`}),` users when appropriate`]}),`\n`,_jsxs(_components.li,{children:[`Monitor usage against your plan’s `,_jsx(_components.strong,{children:`site user limit`})]}),`\n`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Plan`}),_jsx(_components.th,{children:`Site users`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Growth`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`25,000`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Pro`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`100,000`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Enterprise`}),_jsx(_components.td,{children:`Unlimited`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`step-5-—-use-sessions-on-your-site`,children:`Step 5 — Use sessions on your site`}),`\n`,_jsxs(_components.p,{children:[`The fastest way to wire up sign-in is to ask the AI builder (see the prompts below). Editing page code yourself? Pages manage sessions with `,_jsx(_components.code,{children:`window.webstorio`}),` auth methods — start sign-in with `,_jsx(_components.code,{children:`signInWithWebstorio`}),`, read the visitor with `,_jsx(_components.code,{children:`getSession`}),`, and end the session with `,_jsx(_components.code,{children:`signOut`}),`. On sign-in pages, if `,_jsx(_components.code,{children:`getSession()`}),` already returns a user, redirect them onward instead of showing the button again.`]}),`\n`,_jsxs(_components.p,{children:[`→ Methods, parameters, and examples: `,_jsx(_components.a,{href:`/api-reference/sdk/auth`,children:`Auth SDK reference`})]}),`\n`,_jsx(Heading,{level:`2`,id:`works-with-other-website-features`,children:`Works with other website features`}),`\n`,_jsx(Heading,{level:`3`,id:`online-store`,children:`Online store`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Checkout can `,_jsx(_components.strong,{children:`prefill`}),` customer email from `,_jsx(_components.code,{children:`getSession()`})]}),`\n`,_jsxs(_components.li,{children:[`Orders link to the signed-in `,_jsx(_components.strong,{children:`site user`}),` when authentication is enabled`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`My orders`}),` pages use `,_jsx(_components.code,{children:`getMyOrders()`}),` and `,_jsx(_components.code,{children:`getMyOrderById()`})]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`→ `,_jsx(_components.a,{href:`/guides/online-store`,children:`Online store`})]}),`\n`,_jsx(Heading,{level:`3`,id:`app-data`,children:`App Data`}),`\n`,_jsxs(_components.p,{children:[`API presets like `,_jsx(_components.strong,{children:`Signed-in users (read only)`}),` or `,_jsx(_components.strong,{children:`Public read, signed-in write`}),` require an active site session.`]}),`\n`,_jsxs(_components.p,{children:[`→ `,_jsx(_components.a,{href:`/guides/app-data`,children:`App Data`})]}),`\n`,_jsx(Heading,{level:`2`,id:`example-ai-prompts`,children:`Example AI prompts`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Add a Sign in button in the header that calls signInWithWebstorio”`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Account page showing the current user’s name and email from getSession, with a sign out button”`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Protect this page — redirect to /auth/sign-in if getSession returns null”`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Checkout page that prefills email from getSession when the user is signed in”`})}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`tips`,children:`Tips`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Publish auth pages before linking to them from your header or store checkout.`})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Use `,_jsx(_components.strong,{children:`disable`}),` instead of delete when you need to block access but keep order\nor submission history tied to a user.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`for-developers`,children:`For developers`}),`\n`,_jsxs(_components.p,{children:[`Page code uses `,_jsx(_components.code,{children:`window.webstorio`}),` auth methods. → `,_jsx(_components.a,{href:`/api-reference/sdk/auth`,children:`Auth SDK`})]})]})}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":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"User Authentication","description":"Let visitors sign in to your site with Sign in with Webstorio — sessions, auth pages, and protected experiences.","icon":"lock","href":"/guides/user-authentication"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"When to use it","slug":"when-to-use-it","depth":2,"children":[]},{"title":"How sign-in works","slug":"how-sign-in-works","depth":2,"children":[]},{"title":"Step 1 — Enable User Authentication","slug":"step-1-—-enable-user-authentication","depth":2,"children":[]},{"title":"Step 2 — Create auth pages","slug":"step-2-—-create-auth-pages","depth":2,"children":[]},{"title":"Step 3 — Configure auth settings","slug":"step-3-—-configure-auth-settings","depth":2,"children":[]},{"title":"Step 4 — Manage site users","slug":"step-4-—-manage-site-users","depth":2,"children":[]},{"title":"Step 5 — Use sessions on your site","slug":"step-5-—-use-sessions-on-your-site","depth":2,"children":[]},{"title":"Works with other website features","slug":"works-with-other-website-features","depth":2,"children":[{"title":"Online store","slug":"online-store","depth":3,"children":[]},{"title":"App Data","slug":"app-data","depth":3,"children":[]}]},{"title":"Example AI prompts","slug":"example-ai-prompts","depth":2,"children":[]},{"title":"Tips","slug":"tips","depth":2,"children":[]},{"title":"For developers","slug":"for-developers","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"webstorio","siteName":"Webstorio","title":"User Authentication - Webstorio","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-18T10:03:10.120Z","originalFileLocation":"guides/user-authentication.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=\"dark\"}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=\"Let visitors sign in to your site with Sign in with Webstorio — sessions, auth pages, and protected experiences.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Webstorio\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/webstorio/JSuJ6W4VOkpns6w-/_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/webstorio/JSuJ6W4VOkpns6w-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/webstorio/JSuJ6W4VOkpns6w-/_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/webstorio/JSuJ6W4VOkpns6w-/_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/webstorio/JSuJ6W4VOkpns6w-/_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/webstorio/JSuJ6W4VOkpns6w-/_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/webstorio/JSuJ6W4VOkpns6w-/_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/webstorio/JSuJ6W4VOkpns6w-/_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/webstorio/JSuJ6W4VOkpns6w-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"User Authentication - Webstorio\">\u003cmeta data-mint-head property=\"og:description\" content=\"Let visitors sign in to your site with Sign in with Webstorio — sessions, auth pages, and protected experiences.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Webstorio\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.webstorio.com/guides/user-authentication\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://webstorio.mintlify.app/_mintlify/api/og/v2?division=How-to\u0026amp;title=User+Authentication\u0026amp;description=Let+visitors+sign+in+to+your+site+with+Sign+in+with+Webstorio+%E2%80%94+sessions%2C+auth+pages%2C+and+protected+experiences.\u0026amp;theme=61938834aef9d73c10d67b82\u0026amp;signature=3b08ffc33021b00d21d2758bdcefb0f11b044cf135dfec67e67fd342cd9c0c4a\">\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 Authentication - Webstorio\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Let visitors sign in to your site with Sign in with Webstorio — sessions, auth pages, and protected experiences.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://webstorio.mintlify.app/_mintlify/api/og/v2?division=How-to\u0026amp;title=User+Authentication\u0026amp;description=Let+visitors+sign+in+to+your+site+with+Sign+in+with+Webstorio+%E2%80%94+sessions%2C+auth+pages%2C+and+protected+experiences.\u0026amp;theme=61938834aef9d73c10d67b82\u0026amp;signature=3b08ffc33021b00d21d2758bdcefb0f11b044cf135dfec67e67fd342cd9c0c4a\">\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/webstorio/JSuJ6W4VOkpns6w-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Webstorio\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0284C7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.webstorio.com/guides/user-authentication\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/user-authentication.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.webstorio.com/#organization\",\"name\":\"Webstorio\",\"url\":\"https://docs.webstorio.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/webstorio/A8Y1yqNjHcD0y95T/logo/light.png?fit=max\u0026auto=format\u0026n=A8Y1yqNjHcD0y95T\u0026q=85\u0026s=b0e6f3a9e94e7bf0d2dd74dbd91d0e49\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.webstorio.com#website\",\"name\":\"Webstorio\",\"url\":\"https://docs.webstorio.com\",\"publisher\":{\"@id\":\"https://docs.webstorio.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.webstorio.com/guides/user-authentication#webpage\",\"url\":\"https://docs.webstorio.com/guides/user-authentication\",\"name\":\"User Authentication\",\"description\":\"Let visitors sign in to your site with Sign in with Webstorio — sessions, auth pages, and protected experiences.\",\"dateModified\":\"2026-07-18T10:03:10.120Z\",\"isPartOf\":{\"@id\":\"https://docs.webstorio.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.webstorio.com/guides/user-authentication#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.webstorio.com/guides/user-authentication#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"How-to\",\"item\":\"https://docs.webstorio.com/guides/content-and-cms\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"User Authentication\",\"item\":\"https://docs.webstorio.com/guides/user-authentication\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.webstorio.com/guides/user-authentication#article\",\"headline\":\"User Authentication\",\"name\":\"User Authentication\",\"description\":\"Let visitors sign in to your site with Sign in with Webstorio — sessions, auth pages, and protected experiences.\",\"url\":\"https://docs.webstorio.com/guides/user-authentication\",\"mainEntityOfPage\":{\"@id\":\"https://docs.webstorio.com/guides/user-authentication#webpage\"},\"dateModified\":\"2026-07-18T10:03:10.120Z\",\"publisher\":{\"@id\":\"https://docs.webstorio.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.webstorio.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Webstorio\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Webstorio","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book-open","groups":[{"group":"Get started","pages":[{"title":"Introduction","icon":"sparkles","href":""},{"title":"Create your first site","icon":"rocket","href":"/guides/create-your-site"}]},{"group":"Explanation","pages":[{"title":"Dashboard vs CLI","icon":"git-compare","href":"/guides/dashboard-vs-cli"},{"title":"How Webstorio works","icon":"puzzle","href":"/guides/features"},{"title":"Webstorio features","icon":"layout-dashboard","href":"/guides/webstorio-features"},{"title":"Website features","icon":"globe","href":"/guides/website-features"},{"title":"AI credits","icon":"sparkles","href":"/guides/ai-credits"}]},{"group":"How-to","pages":[{"title":"Content \u0026 CMS","icon":"file-text","href":"/guides/content-and-cms"},{"title":"Forms \u0026 surveys","icon":"clipboard-list","href":"/guides/forms"},{"title":"Online store","icon":"shopping-cart","href":"/guides/online-store"},{"title":"Payment Gateway","description":"Accept one-time QRIS payments on your published Webstorio store — platform-managed or with your own Xendit key.","icon":"credit-card","href":"/guides/payment-gateway"},{"title":"User Authentication","icon":"lock","href":"/guides/user-authentication"},{"title":"App Data","description":"Define custom tables, manage rows, and expose data on your site via the API and SDK.","icon":"database","href":"/guides/app-data"},{"title":"Publishing \u0026 domains","icon":"globe","href":"/guides/publishing-and-domains"}]},{"group":"Help","pages":[{"title":"FAQ","icon":"circle-question-mark","href":"/guides/faq"},{"title":"Contact","icon":"mail","url":"mailto:[email protected]","href":"/guides/contact"}]}]},{"tab":"Developer","icon":"square-terminal","pages":[{"title":"Developer","href":"/developer"}]},{"tab":"References","icon":"code","pages":[{"title":"References","href":"/api-reference/introduction"}]},{"tab":"Changelog","icon":"history","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"User Authentication - Webstorio","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}