{"_id":"@codetheorist/nuxt-auth","_rev":"5-a1c01dee4fb126cf0381577e5f7f4017","name":"@codetheorist/nuxt-auth","dist-tags":{"latest":"0.6.0-beta.3.custom6"},"versions":{"0.6.0-beta.3":{"name":"@codetheorist/nuxt-auth","version":"0.6.0-beta.3","license":"MIT","type":"module","private":false,"exports":{".":{"import":"./dist/module.mjs","require":"./dist/module.cjs"}},"main":"./dist/module.cjs","types":"./dist/types.d.ts","scripts":{"prepack":"nuxt-module-build","build":"nuxi build","lint":"eslint . --max-warnings=0","clean":"rm -rf playground-authjs/.nuxt playground-local/.nuxt dist .nuxt","typecheck":"nuxi prepare playground-local && tsc --noEmit","dev:prepare":"nuxt-module-build --stub"},"dependencies":{"@nuxt/kit":"^3.4.2","@vueuse/core":"^9.13.0","defu":"^6.1.2","h3":"^1.6.4","knitwork":"^1.0.0","nitropack":"^2.3.2","requrl":"^3.0.2","ufo":"^1.1.1"},"peerDependencies":{"next-auth":"^4.22.3"},"devDependencies":{"@nuxt/module-builder":"^0.3.0","@nuxt/schema":"^3.4.2","@nuxtjs/eslint-config-typescript":"^12.0.0","@types/node":"^18.15.11","eslint":"^8.37.0","nuxt":"^3.4.2","ofetch":"^1.0.1","ts-essentials":"^9.3.1","typescript":"^5.0.3","vue-tsc":"^1.2.0"},"overrides":{"@nuxt/kit":{"json5":">=2.2.2"},"@nuxtjs/eslint-config-typescript":{"json5":">=1.0.2"}},"gitHead":"45d7e349ee0bb8791afdba69c7c35f39c9fe5a75","description":"![nuxt-auth demo page](.github/nuxt-auth.jpg)","_id":"@codetheorist/nuxt-auth@0.6.0-beta.3","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-sEf2lcTgY8UYIUk7kxdGpMz+zmbyHpT1qwYNKKJI6yFVEfvHzAiBRoPp/qJS9S/tm++ZYHWNANx8LzxT3t9rxg==","shasum":"fc5ccaf07627de0ccf286e3eb2ef907ad18f496c","tarball":"https://registry.npmjs.org/@codetheorist/nuxt-auth/-/nuxt-auth-0.6.0-beta.3.tgz","fileCount":44,"unpackedSize":85042,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4pZLCnye4eDBwReazFzkPP7027AZRPUsFSht+a4ddkgIhAKmxdTFcAdZpOKHahM9kMSYzl3pNLeuB/rybDeMxN4Sx"}]},"_npmUser":{"name":"codetheoristdevelopments","email":"codetheorist@gmail.com"},"directories":{},"maintainers":[{"name":"codetheoristdevelopments","email":"codetheorist@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nuxt-auth_0.6.0-beta.3_1689845292949_0.1965370155284072"},"_hasShrinkwrap":false},"0.6.0-beta.3.custom2":{"name":"@codetheorist/nuxt-auth","version":"0.6.0-beta.3.custom2","license":"MIT","type":"module","private":false,"exports":{".":{"import":"./dist/module.mjs","require":"./dist/module.cjs"}},"main":"./dist/module.cjs","types":"./dist/types.d.ts","scripts":{"prepack":"nuxt-module-build","build":"nuxi build","lint":"eslint . --max-warnings=0","clean":"rm -rf playground-authjs/.nuxt playground-local/.nuxt dist .nuxt","typecheck":"nuxi prepare playground-local && tsc --noEmit","dev:prepare":"nuxt-module-build --stub"},"dependencies":{"@nuxt/kit":"^3.4.2","@vueuse/core":"^9.13.0","defu":"^6.1.2","h3":"^1.6.4","knitwork":"^1.0.0","nitropack":"^2.3.2","requrl":"^3.0.2","ufo":"^1.1.1"},"peerDependencies":{"@codetheorist/next-auth":"4.22.3-custom"},"devDependencies":{"@nuxt/module-builder":"^0.3.0","@nuxt/schema":"^3.4.2","@nuxtjs/eslint-config-typescript":"^12.0.0","@types/node":"^18.15.11","eslint":"^8.37.0","nuxt":"^3.4.2","ofetch":"^1.0.1","ts-essentials":"^9.3.1","typescript":"^5.0.3","vue-tsc":"^1.2.0"},"overrides":{"@nuxt/kit":{"json5":">=2.2.2"},"@nuxtjs/eslint-config-typescript":{"json5":">=1.0.2"}},"gitHead":"2be3642e896dd0868e778df43796f6edd243fdff","description":"![nuxt-auth demo page](.github/nuxt-auth.jpg)","_id":"@codetheorist/nuxt-auth@0.6.0-beta.3.custom2","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Jr92Me+j54EL0Eo+J4KhcRUbmT4OHN1DR/B4XSxZp9QC/qy2FNwjdxIKA/pLIqA7OVR+X2a7GUiCASsekzI7Iw==","shasum":"0fe9c637a549a44c1099f0774f41c23c1866cff6","tarball":"https://registry.npmjs.org/@codetheorist/nuxt-auth/-/nuxt-auth-0.6.0-beta.3.custom2.tgz","fileCount":44,"unpackedSize":85260,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGNEi22RhFD42ihLngMS2NBQMmWTGpovKNPlBtvqWbKxAiAwdshfDLVetOFeOl2ERYv9iakmhQtbFWyFF+o5edvTSQ=="}]},"_npmUser":{"name":"codetheoristdevelopments","email":"codetheorist@gmail.com"},"directories":{},"maintainers":[{"name":"codetheoristdevelopments","email":"codetheorist@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nuxt-auth_0.6.0-beta.3.custom2_1689856319237_0.9848817185902421"},"_hasShrinkwrap":false},"0.6.0-beta.3.custom3":{"name":"@codetheorist/nuxt-auth","version":"0.6.0-beta.3.custom3","license":"MIT","type":"module","private":false,"exports":{".":{"import":"./dist/module.mjs","require":"./dist/module.cjs"}},"main":"./dist/module.cjs","types":"./dist/types.d.ts","scripts":{"prepack":"nuxt-module-build","build":"nuxi build","lint":"eslint . --max-warnings=0","clean":"rm -rf playground-authjs/.nuxt playground-local/.nuxt dist .nuxt","typecheck":"nuxi prepare playground-local && tsc --noEmit","dev:prepare":"nuxt-module-build --stub"},"dependencies":{"@nuxt/kit":"^3.4.2","@vueuse/core":"^9.13.0","defu":"^6.1.2","h3":"^1.6.4","knitwork":"^1.0.0","nitropack":"^2.3.2","requrl":"^3.0.2","ufo":"^1.1.1"},"peerDependencies":{"@codetheorist/next-auth":"4.22.3-custom"},"devDependencies":{"@nuxt/module-builder":"^0.3.0","@nuxt/schema":"^3.4.2","@nuxtjs/eslint-config-typescript":"^12.0.0","@types/node":"^18.15.11","eslint":"^8.37.0","nuxt":"^3.4.2","ofetch":"^1.0.1","ts-essentials":"^9.3.1","typescript":"^5.0.3","vue-tsc":"^1.2.0"},"overrides":{"@nuxt/kit":{"json5":">=2.2.2"},"@nuxtjs/eslint-config-typescript":{"json5":">=1.0.2"}},"gitHead":"2be3642e896dd0868e778df43796f6edd243fdff","description":"![nuxt-auth demo page](.github/nuxt-auth.jpg)","_id":"@codetheorist/nuxt-auth@0.6.0-beta.3.custom3","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-tV2j/EzSYeWkM6nNKW6IXipPVro9MThhPwV6YUOpH7EBvxJ1DVc1QiwxWr8mcrIetqOihqb95JAqVzUdYAMWIg==","shasum":"6cd6ee8980de5c42372b4e4dcec491414daaf239","tarball":"https://registry.npmjs.org/@codetheorist/nuxt-auth/-/nuxt-auth-0.6.0-beta.3.custom3.tgz","fileCount":44,"unpackedSize":85260,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4rFxc25BOYH9HylunAQ6xTLU1sXS0fG9AnBwhslbMOwIgDSsJZ+RGWYtRVdD7FDEWbZzluzjZ0PV24OMxETBiVDU="}]},"_npmUser":{"name":"codetheoristdevelopments","email":"codetheorist@gmail.com"},"directories":{},"maintainers":[{"name":"codetheoristdevelopments","email":"codetheorist@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nuxt-auth_0.6.0-beta.3.custom3_1689861018871_0.4882698429223047"},"_hasShrinkwrap":false},"0.6.0-beta.3.custom4":{"name":"@codetheorist/nuxt-auth","version":"0.6.0-beta.3.custom4","license":"MIT","type":"module","private":false,"exports":{".":{"import":"./dist/module.mjs","require":"./dist/module.cjs"}},"main":"./dist/module.cjs","types":"./dist/types.d.ts","scripts":{"prepack":"nuxt-module-build","build":"nuxi build","lint":"eslint . --max-warnings=0","clean":"rm -rf playground-authjs/.nuxt playground-local/.nuxt dist .nuxt","typecheck":"nuxi prepare playground-local && tsc --noEmit","dev:prepare":"nuxt-module-build --stub"},"dependencies":{"@nuxt/kit":"^3.4.2","@vueuse/core":"^9.13.0","defu":"^6.1.2","h3":"^1.6.4","knitwork":"^1.0.0","nitropack":"^2.3.2","requrl":"^3.0.2","ufo":"^1.1.1"},"peerDependencies":{"@codetheorist/next-auth":"4.22.3-custom"},"devDependencies":{"@nuxt/module-builder":"^0.3.0","@nuxt/schema":"^3.4.2","@nuxtjs/eslint-config-typescript":"^12.0.0","@types/node":"^18.15.11","eslint":"^8.37.0","nuxt":"^3.4.2","ofetch":"^1.0.1","ts-essentials":"^9.3.1","typescript":"^5.0.3","vue-tsc":"^1.2.0"},"overrides":{"@nuxt/kit":{"json5":">=2.2.2"},"@nuxtjs/eslint-config-typescript":{"json5":">=1.0.2"}},"gitHead":"2be3642e896dd0868e778df43796f6edd243fdff","description":"![nuxt-auth demo page](.github/nuxt-auth.jpg)","_id":"@codetheorist/nuxt-auth@0.6.0-beta.3.custom4","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-PzrHITKF8qGs3vWXTukZQQdRBIVNP/t0I7oRuOgQEUvkrbLF2mp7YqBrGrsxZ9hbanITs3hvyOr0rFJ3b7v/Cw==","shasum":"f0a2b32a846af2a85c0eb10da63d299fc2c0aade","tarball":"https://registry.npmjs.org/@codetheorist/nuxt-auth/-/nuxt-auth-0.6.0-beta.3.custom4.tgz","fileCount":63,"unpackedSize":148697,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYeAEtrXg0Nwh/g4CAZHGP7ecs4zDnHmNkQwK+cwYbawIhAI6sjgC+voxibcX4HbJQosNxDiaPyWDqPuO+Q4iZonyM"}]},"_npmUser":{"name":"codetheoristdevelopments","email":"codetheorist@gmail.com"},"directories":{},"maintainers":[{"name":"codetheoristdevelopments","email":"codetheorist@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nuxt-auth_0.6.0-beta.3.custom4_1689861507201_0.7892688127960867"},"_hasShrinkwrap":false},"0.6.0-beta.3.custom5":{"name":"@codetheorist/nuxt-auth","version":"0.6.0-beta.3.custom5","license":"MIT","type":"module","private":false,"exports":{".":{"import":"./dist/module.mjs","require":"./dist/module.cjs"}},"main":"./dist/module.cjs","types":"./dist/types.d.ts","scripts":{"prepack":"nuxt-module-build","build":"nuxi build","lint":"eslint . --max-warnings=0","clean":"rm -rf playground-authjs/.nuxt playground-local/.nuxt dist .nuxt","typecheck":"nuxi prepare playground-local && tsc --noEmit","dev:prepare":"nuxt-module-build --stub"},"dependencies":{"@nuxt/kit":"^3.4.2","@vueuse/core":"^9.13.0","defu":"^6.1.2","h3":"^1.6.4","knitwork":"^1.0.0","nitropack":"^2.3.2","requrl":"^3.0.2","ufo":"^1.1.1"},"peerDependencies":{"@codetheorist/next-auth":"4.22.3-custom2"},"devDependencies":{"@nuxt/module-builder":"^0.3.0","@nuxt/schema":"^3.4.2","@nuxtjs/eslint-config-typescript":"^12.0.0","@types/node":"^18.15.11","eslint":"^8.37.0","nuxt":"^3.4.2","ofetch":"^1.0.1","ts-essentials":"^9.3.1","typescript":"^5.0.3","vue-tsc":"^1.2.0"},"overrides":{"@nuxt/kit":{"json5":">=2.2.2"},"@nuxtjs/eslint-config-typescript":{"json5":">=1.0.2"}},"gitHead":"2be3642e896dd0868e778df43796f6edd243fdff","description":"![nuxt-auth demo page](.github/nuxt-auth.jpg)","_id":"@codetheorist/nuxt-auth@0.6.0-beta.3.custom5","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-8ZQEiIRWgZkjbYBNv+BRtwFgpd8GkAKIVQVB/IDuaRWOUW/TygFJO5K0XVmzzygAeEJTlodbuK6dfZLSMwEbrA==","shasum":"2ad2e36f1ccd56accf35f452f67b187fd12cc7bc","tarball":"https://registry.npmjs.org/@codetheorist/nuxt-auth/-/nuxt-auth-0.6.0-beta.3.custom5.tgz","fileCount":63,"unpackedSize":148698,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+1B6uhU4a1cPQV3p6+dwJWWJgAgs2nmbXVVg0l3evHwIhAIdq3Mep0lSEUcNLA5ql1gdV4bNzg44xBZCzQM3hrVGe"}]},"_npmUser":{"name":"codetheoristdevelopments","email":"codetheorist@gmail.com"},"directories":{},"maintainers":[{"name":"codetheoristdevelopments","email":"codetheorist@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nuxt-auth_0.6.0-beta.3.custom5_1689862096171_0.43243429941782674"},"_hasShrinkwrap":false},"0.6.0-beta.3.custom6":{"name":"@codetheorist/nuxt-auth","version":"0.6.0-beta.3.custom6","license":"MIT","type":"module","private":false,"exports":{".":{"import":"./dist/module.mjs","require":"./dist/module.cjs"}},"main":"./dist/module.cjs","types":"./dist/types.d.ts","scripts":{"prepack":"nuxt-module-build","build":"nuxi build","lint":"eslint . --max-warnings=0","clean":"rm -rf playground-authjs/.nuxt playground-local/.nuxt dist .nuxt","typecheck":"nuxi prepare playground-local && tsc --noEmit","dev:prepare":"nuxt-module-build --stub"},"dependencies":{"@nuxt/kit":"^3.4.2","@vueuse/core":"^9.13.0","defu":"^6.1.2","h3":"^1.6.4","knitwork":"^1.0.0","nitropack":"^2.3.2","requrl":"^3.0.2","ufo":"^1.1.1"},"peerDependencies":{"@codetheorist/next-auth":"4.22.3-custom3"},"devDependencies":{"@nuxt/module-builder":"^0.3.0","@nuxt/schema":"^3.4.2","@nuxtjs/eslint-config-typescript":"^12.0.0","@types/node":"^18.15.11","eslint":"^8.37.0","nuxt":"^3.4.2","ofetch":"^1.0.1","ts-essentials":"^9.3.1","typescript":"^5.0.3","vue-tsc":"^1.2.0"},"overrides":{"@nuxt/kit":{"json5":">=2.2.2"},"@nuxtjs/eslint-config-typescript":{"json5":">=1.0.2"}},"gitHead":"2be3642e896dd0868e778df43796f6edd243fdff","description":"![nuxt-auth demo page](.github/nuxt-auth.jpg)","_id":"@codetheorist/nuxt-auth@0.6.0-beta.3.custom6","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-cjEDnRAkvSusCvres1A8L+Fqvd6Z4rV2POwozjmNwoyW8eNbvXnaejC95Nker9eQN15v+K7tcruEp8zbRoZ2pg==","shasum":"14a5a7a8e0b343de31829c732e8c512beb280b1f","tarball":"https://registry.npmjs.org/@codetheorist/nuxt-auth/-/nuxt-auth-0.6.0-beta.3.custom6.tgz","fileCount":63,"unpackedSize":148698,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEEPQACbFDwSH2QYnBWhI1yHj+uBJhwabaW87bmTN5cWAiEAn1Z5vNggUJ79Jxyma5uOGY9+LBal/8ChyOKXdNlRqag="}]},"_npmUser":{"name":"codetheoristdevelopments","email":"codetheorist@gmail.com"},"directories":{},"maintainers":[{"name":"codetheoristdevelopments","email":"codetheorist@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nuxt-auth_0.6.0-beta.3.custom6_1689862817576_0.2192665774024498"},"_hasShrinkwrap":false}},"time":{"created":"2023-07-20T09:28:12.870Z","0.6.0-beta.3":"2023-07-20T09:28:13.127Z","modified":"2023-07-20T14:20:17.971Z","0.6.0-beta.3.custom2":"2023-07-20T12:31:59.405Z","0.6.0-beta.3.custom3":"2023-07-20T13:50:19.057Z","0.6.0-beta.3.custom4":"2023-07-20T13:58:27.457Z","0.6.0-beta.3.custom5":"2023-07-20T14:08:16.412Z","0.6.0-beta.3.custom6":"2023-07-20T14:20:17.759Z"},"maintainers":[{"name":"codetheoristdevelopments","email":"codetheorist@gmail.com"}],"description":"![nuxt-auth demo page](.github/nuxt-auth.jpg)","license":"MIT","readme":"![nuxt-auth demo page](.github/nuxt-auth.jpg)\n\n# 🔐 nuxt-auth\n\n[![npm version][npm-version-src]][npm-version-href]\n[![npm downloads][npm-downloads-src]][npm-downloads-href]\n[![GitHub stars](https://badgen.net/github/stars/sidebase/nuxt-auth)](https://GitHub.com/sidebase/nuxt-auth/)\n[![License][license-src]][license-href]\n[![Follow us on Twitter](https://badgen.net/badge/icon/twitter?icon=twitter&label)](https://twitter.com/sidebase_io)\n[![Join our Discord](https://badgen.net/badge/icon/discord?icon=discord&label)](https://discord.gg/NDDgQkcv3s)\n\n> `nuxt-auth` is a feature-packed, open-source authentication module for Nuxt 3 applications.\n> Starting with v0.6 `nuxt-auth` also supports static Nuxt applications\n\n## Quick Start\n\n```sh\nnpm i -D @sidebase/nuxt-auth\n```\n\nThen visit the [Quick Start documentation](https://sidebase.io/nuxt-auth/getting-started/quick-start) to setup the module for <= v0.5 - the current stable version.\n\nVisit the [Quick Start documentation](https://sidebase.io/nuxt-auth/v0.6/getting-started/quick-start) to setup the module for >= v0.6 - the \"future\" experimental version with support for static Nuxt 3 apps and the `local` provider.\n\n## Features\n\n`nuxt-auth` is a library with the goal of supporting authentication for any universal Nuxt 3 application. At the moment two providers are supported:\n- [Auth.js / NextAuth.js](https://github.com/nextauthjs/next-auth) to offer the reliability & convenience of a 12k star library to the nuxt 3 ecosystem with a native developer experience (DX)\n- `local` for static pages that rely on an external backend with a credential flow for authentication. `local` is supported starting with v0.6 of the module\n\nFeatures of the `authjs`-provider of `nuxt-auth` include:\n- ✔️ Authentication providers:\n    - ✔️ OAuth (e.g., Github, Google, Twitter, Azure, ...)\n    - ✔️ Custom OAuth (write it yourself)\n    - ✔️ Credentials (password + username)\n    - ✔️ Email Magic URLs\n- ✔️ Isomorphic / Universal Auth Composable `useAuth` supports:\n    - actions: `getSession`, `getCsrfToken`, `getProviders`, `signIn`, `signOut`\n    - getters: `status`, `data`, `lastRefreshedAt`\n    - full typescript support for all methods and property\n- ✔️ Application-side middleware protection\n- ✔️ Server-side middleware and endpoint protection\n- ✔️ Advanced features for session life-cycle management:\n    - Refresh the session periodically\n    - Refresh the session on tab-refocus\n    - One time session fetch on page load, afterwards for specific actions (e.g., on navigation)\n    - 🚧 Session broadcasting between tabs (see #70)\n- ✔️ Persistent sessions across requests\n- ✔️ REST API:\n    - `GET /signin`,\n    - `POST /signin/:provider`,\n    - `GET/POST /callback/:provider`,\n    - `GET /signout`,\n    - `POST /signout`,\n    - `GET /session`,\n    - `GET /csrf`,\n    - `GET /providers`\n\nYou can find a feature-table of all starting with v0.6 in the [nuxt-auth \"next\"-version-docs](https://sidebase.io/nuxt-auth/v0.6/getting-started).\n\n## Demo Page\n\nVisit the [`nuxt-auth` demo page here](https://nuxt-auth-example.sidebase.io/):\n![nuxt-auth demo page](.github/nuxt-auth-demo.png)\n\nYou can find the [demo source-code here](https://github.com/sidebase/nuxt-auth-example).\n\n## Development\n\nThis project uses `pnpm` for development.\n\n- Run `pnpm dev:prepare` to generate type stubs.\n- Use `pnpm dev` to start [the module playground](./playground) in development mode.\n- Run `pnpm lint` to run eslint\n- Run `pnpm typecheck` to run typescheck via tsc\n- Run `pnpm publish --access public` to publish (bump version before)\n\n<!-- Badges -->\n[npm-version-src]: https://img.shields.io/npm/v/@sidebase/nuxt-auth/latest.svg\n[npm-version-href]: https://npmjs.com/package/@sidebase/nuxt-auth\n\n[npm-downloads-src]: https://img.shields.io/npm/dt/@sidebase/nuxt-auth.svg\n[npm-downloads-href]: https://npmjs.com/package/@sidebase/nuxt-auth\n\n[license-src]: https://img.shields.io/npm/l/@sidebase/nuxt-auth.svg\n[license-href]: https://npmjs.com/package/@sidebase/nuxt-auth\n\n### Module Playground\n\nThis module also has it's own playground:\n```sh\n> git clone https://github.com/sidebase/nuxt-auth\n\n> cd nuxt-auth\n\n# **OPEN THE `~/playground/server/api/auth/[...].ts` and configure your own auth-provider\n\n> pnpm i\n\n> pnpm dev:prepare\n\n> pnpm dev\n\n# -> open http://localhost:3000\n```\n\n#### Testing different Providers\n\nWe have one playground per provider:\n- [`local`](./playground-local)\n- [`authjs`](./playground-authjs)\n\n**How to test static Nuxt 3 apps?**\n\nTo test static Nuxt 3 apps we want to run a static frontend and a separate backend that will take over authentication:\n1. `playground-local/nuxt.config.ts`: Add `baseURL: 'http://localhost:3001'` to the `auth`-config\n2. Start the static frontend:\n    ```sh\n    cd playground-local\n\n    pnpm generate\n\n    pnpm start\n    ```\n3. Start the authentication backend (we use a second instance of the same nuxt3 app):\n    ```sh\n    cd playground-local\n\n    pnpm dev\n\n    # A seconds Nuxt app should now be running on http://localhost:3001. We use this purely for authentication\n    ```\n4.  Visit [http://localhost:3000](http://localhost:3000) -> this should open the static application. Performing any auth-related actions, the app should send requests to the backend running on port `3001`  \n","readmeFilename":"README.md"}