[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"versions":3,"module-kinde":7},{"v3":4,"v4":5,"v2":6},"3.21.8","4.4.8","2.18.1",{"name":8,"description":9,"repo":10,"npm":11,"icon":12,"github":13,"website":14,"learn_more":15,"category":16,"type":17,"maintainers":18,"compatibility":28,"sponsor":31,"generatedAt":32,"contributors":33,"stats":61,"readme":70},"kinde","Kinde authentication integration for Nuxt","nuxt-modules/kinde","@nuxtjs/kinde","kinde.svg","https://github.com/nuxt-modules/kinde","https://www.kinde.com/docs/developer-tools/nuxt-module/","https://www.kinde.com/","Security","community",[19,24],{"name":20,"github":21,"twitter":22,"bluesky":23},"Daniel Roe","danielroe","danielcroe","danielroe.dev",{"name":25,"github":26,"twitter":27},"Dave","DaveOrDead","dave_or_dead",{"nuxt":29,"requires":30},">=3.0.0",{},true,"2026-06-10T02:12:32.654Z",[34,37,41,44,48,51,55,58],{"id":35,"username":21,"contributions":36},28706372,94,{"id":38,"username":39,"contributions":40},1270799,"DanielRivers",17,{"id":42,"username":26,"contributions":43},1312905,5,{"id":45,"username":46,"contributions":47},904724,"atinux",2,{"id":49,"username":50,"contributions":47},30754269,"felix-dolderer",{"id":52,"username":53,"contributions":54},9217515,"GioPat",1,{"id":56,"username":57,"contributions":54},100753878,"joeychilson",{"id":59,"username":60,"contributions":54},25512687,"mod08",{"version":62,"downloads":63,"stars":64,"watchers":65,"forks":66,"defaultBranch":67,"publishedAt":68,"createdAt":69},"0.4.0",1711,90,4,8,"main",1762515621531,1697624616889,{"data":71,"body":73,"toc":402},{"title":72,"description":72},"",{"type":74,"children":75},"root",[76,87,95,139,158,172,179,196,208,236,246,267,282,290,303,313,318,324,331,336,343,348,353,358,364,383,389,397],{"type":77,"tag":78,"props":79,"children":80},"element","p",{},[81],{"type":77,"tag":82,"props":83,"children":86},"img",{"alt":84,"src":85},"nuxt-kinde-social-card","https://github.com/nuxt-modules/kinde/assets/904724/b738708c-3d5c-4d72-b233-22488678cb6e",[],{"type":77,"tag":88,"props":89,"children":91},"h1",{"id":90},"nuxt-kinde",[92],{"type":93,"value":94},"text","Nuxt Kinde",{"type":77,"tag":78,"props":96,"children":97},{},[98,110,120,129],{"type":77,"tag":99,"props":100,"children":104},"a",{"href":101,"rel":102},"https://npmjs.com/package/@nuxtjs/kinde",[103],"nofollow",[105],{"type":77,"tag":82,"props":106,"children":109},{"alt":107,"src":108},"npm version","https://img.shields.io/npm/v/@nuxtjs/kinde/latest.svg?style=flat&colorA=18181B&colorB=28CF8D",[],{"type":77,"tag":99,"props":111,"children":114},{"href":112,"rel":113},"https://npm.chart.dev/@nuxtjs/kinde",[103],[115],{"type":77,"tag":82,"props":116,"children":119},{"alt":117,"src":118},"npm downloads","https://img.shields.io/npm/dm/@nuxtjs/kinde.svg?style=flat&colorA=18181B&colorB=28CF8D",[],{"type":77,"tag":99,"props":121,"children":123},{"href":101,"rel":122},[103],[124],{"type":77,"tag":82,"props":125,"children":128},{"alt":126,"src":127},"License","https://img.shields.io/npm/l/@nuxtjs/kinde.svg?style=flat&colorA=18181B&colorB=28CF8D",[],{"type":77,"tag":99,"props":130,"children":133},{"href":131,"rel":132},"https://nuxt.com",[103],[134],{"type":77,"tag":82,"props":135,"children":138},{"alt":136,"src":137},"Nuxt","https://img.shields.io/badge/Nuxt-18181B?logo=nuxt.js",[],{"type":77,"tag":78,"props":140,"children":141},{},[142,149,151,156],{"type":77,"tag":99,"props":143,"children":146},{"href":144,"rel":145},"https://kinde.com/",[103],[147],{"type":93,"value":148},"Kinde",{"type":93,"value":150}," integration for ",{"type":77,"tag":99,"props":152,"children":154},{"href":131,"rel":153},[103],[155],{"type":93,"value":136},{"type":93,"value":157},".",{"type":77,"tag":159,"props":160,"children":161},"ul",{},[162],{"type":77,"tag":163,"props":164,"children":165},"li",{},[166],{"type":77,"tag":99,"props":167,"children":169},{"href":168},"/CHANGELOG.md",[170],{"type":93,"value":171},"✨  Release Notes",{"type":77,"tag":173,"props":174,"children":176},"h2",{"id":175},"quick-setup",[177],{"type":93,"value":178},"Quick Setup",{"type":77,"tag":180,"props":181,"children":182},"ol",{},[183],{"type":77,"tag":163,"props":184,"children":185},{},[186,188,194],{"type":93,"value":187},"Add ",{"type":77,"tag":189,"props":190,"children":192},"code",{"className":191},[],[193],{"type":93,"value":11},{"type":93,"value":195}," dependency to your project",{"type":77,"tag":197,"props":198,"children":203},"pre",{"className":199,"code":200,"language":201,"meta":72,"style":202},"language-bash","npx nuxi@latest module add kinde\n","bash","undefined",[204],{"type":77,"tag":189,"props":205,"children":206},{"__ignoreMap":72},[207],{"type":93,"value":200},{"type":77,"tag":180,"props":209,"children":210},{"start":47},[211],{"type":77,"tag":163,"props":212,"children":213},{},[214,215,220,222,228,230],{"type":93,"value":187},{"type":77,"tag":189,"props":216,"children":218},{"className":217},[],[219],{"type":93,"value":11},{"type":93,"value":221}," to the ",{"type":77,"tag":189,"props":223,"children":225},{"className":224},[],[226],{"type":93,"value":227},"modules",{"type":93,"value":229}," section of ",{"type":77,"tag":189,"props":231,"children":233},{"className":232},[],[234],{"type":93,"value":235},"nuxt.config.ts",{"type":77,"tag":197,"props":237,"children":241},{"className":238,"code":239,"language":240,"meta":72,"style":202},"language-js","export default defineNuxtConfig({\n  modules: ['@nuxtjs/kinde'],\n  kinde: {\n    // This is true by default and adds 'auth-logged-in' and 'auth-logged-out'\n    // middleware to your Nuxt application.\n    // \n    // middleware: false,\n    //\n    // enable the debug `/api/health` endpoint\n    // debug: true,\n    // \n    // Set custom endpoints in case you use any of the default routes for other purposes\n    // endpoints: {\n    //   callback: '/api/callback',\n    //   login: '/api/login',\n    //   register: '/api/register',\n    //   health: '/api/health',\n    //   logout: '/api/logout'\n    //   access: '/api/access'\n    //   portal: '/api/portal'\n    // }\n  }\n})\n","js",[242],{"type":77,"tag":189,"props":243,"children":244},{"__ignoreMap":72},[245],{"type":93,"value":239},{"type":77,"tag":78,"props":247,"children":248},{},[249,251,257,259,265],{"type":93,"value":250},"Add the following configuration to your ",{"type":77,"tag":189,"props":252,"children":254},{"className":253},[],[255],{"type":93,"value":256},".env",{"type":93,"value":258}," file replacing the values in ",{"type":77,"tag":189,"props":260,"children":262},{"className":261},[],[263],{"type":93,"value":264},"\u003C >",{"type":93,"value":266}," with your Kinde credentials.",{"type":77,"tag":268,"props":269,"children":270},"blockquote",{},[271],{"type":77,"tag":78,"props":272,"children":273},{},[274,280],{"type":77,"tag":275,"props":276,"children":277},"strong",{},[278],{"type":93,"value":279},"NOTE:",{"type":93,"value":281}," The Nuxt Kinde module requires the back-end web API keys",{"type":77,"tag":197,"props":283,"children":285},{"className":199,"code":284,"language":201,"meta":72,"style":202},"NUXT_KINDE_AUDIENCE=\"https://\u003Cyour_kinde_subdomain>.kinde.com/api\" # if you want to use the Management API\nNUXT_KINDE_AUTH_DOMAIN=\"https://\u003Cyour_kinde_subdomain>.kinde.com\"\nNUXT_KINDE_CLIENT_ID=\"\u003Cyour_kinde_client_id>\"\nNUXT_KINDE_CLIENT_SECRET=\"\u003Cyour_kinde_client_secret>\"\nNUXT_KINDE_LOGOUT_REDIRECT_URL=\"http://localhost:3000\"\nNUXT_KINDE_REDIRECT_URL=\"http://localhost:3000/api/callback\"\nNUXT_KINDE_PASSWORD=\u003Ca random password which will be used to encrypt the session cookie>\nNUXT_KINDE_POST_LOGIN_REDIRECT_URL=\"http://localhost:3000/dashboard\"\n",[286],{"type":77,"tag":189,"props":287,"children":288},{"__ignoreMap":72},[289],{"type":93,"value":284},{"type":77,"tag":78,"props":291,"children":292},{},[293,295,301],{"type":93,"value":294},"You can alternatively set any of these values in your ",{"type":77,"tag":189,"props":296,"children":298},{"className":297},[],[299],{"type":93,"value":300},"nuxt.config",{"type":93,"value":302}," file:",{"type":77,"tag":197,"props":304,"children":308},{"className":305,"code":306,"language":307,"meta":72,"style":202},"language-ts","export default defineNuxtConfig({\n  kinde: {\n    authDomain: 'https://\u003Cyour_kinde_subdomain>.kinde.com',\n    clientId: '\u003Cyour_kinde_client_id>',\n    // You probably don't want to set any of the following directly in your config\n    // as they either shouldn't be committed to version control, or are dependent\n    // on your environment.\n    // \n    // clientSecret: '\u003Cyour_kinde_client_secret>',\n    // redirectURL: 'http://localhost:3000/api/callback',\n    // logoutRedirectURL: 'http://localhost:3000',\n    // postLoginRedirectURL: 'http://localhost:3000/dashboard',\n  }\n})\n","ts",[309],{"type":77,"tag":189,"props":310,"children":311},{"__ignoreMap":72},[312],{"type":93,"value":306},{"type":77,"tag":78,"props":314,"children":315},{},[316],{"type":93,"value":317},"That's it! You can now use Nuxt Kinde in your Nuxt app ✨",{"type":77,"tag":173,"props":319,"children":321},{"id":320},"composables",[322],{"type":93,"value":323},"Composables",{"type":77,"tag":325,"props":326,"children":328},"h3",{"id":327},"useauth",[329],{"type":93,"value":330},"useAuth",{"type":77,"tag":78,"props":332,"children":333},{},[334],{"type":93,"value":335},"This returns the current auth state, with the following properties.",{"type":77,"tag":337,"props":338,"children":340},"h4",{"id":339},"loggedin",[341],{"type":93,"value":342},"loggedIn",{"type":77,"tag":78,"props":344,"children":345},{},[346],{"type":93,"value":347},"A boolean that indicates if the user is logged in or not.",{"type":77,"tag":337,"props":349,"children":351},{"id":350},"user",[352],{"type":93,"value":350},{"type":77,"tag":78,"props":354,"children":355},{},[356],{"type":93,"value":357},"The current logged in user state, or null if the user is not logged in.",{"type":77,"tag":325,"props":359,"children":361},{"id":360},"usekindeclient",[362],{"type":93,"value":363},"useKindeClient",{"type":77,"tag":78,"props":365,"children":366},{},[367,372,374,381],{"type":77,"tag":275,"props":368,"children":369},{},[370],{"type":93,"value":371},"Server only",{"type":93,"value":373},". This returns a Kinde client; see ",{"type":77,"tag":99,"props":375,"children":378},{"href":376,"rel":377},"https://kinde.com/docs/developer-tools/typescript-sdk/",[103],[379],{"type":93,"value":380},"Kinde SDK Documentation",{"type":93,"value":382}," for more details.",{"type":77,"tag":173,"props":384,"children":386},{"id":385},"development",[387],{"type":93,"value":388},"Development",{"type":77,"tag":197,"props":390,"children":392},{"className":199,"code":391,"language":201,"meta":72,"style":202},"# Install dependencies\npnpm install\n\n# Generate type stubs\npnpm dev:prepare\n\n# Develop with the playground\npnpm dev\n\n# Build the playground\npnpm dev:build\n\n# Run ESLint\npnpm lint\n\n# Run Vitest\npnpm test\n\n# Release new version\npnpm release\n",[393],{"type":77,"tag":189,"props":394,"children":395},{"__ignoreMap":72},[396],{"type":93,"value":391},{"type":77,"tag":398,"props":399,"children":400},"style",{},[401],{"type":93,"value":72},{"title":72,"searchDepth":47,"depth":47,"links":403},[404,405,410],{"id":175,"depth":47,"text":178},{"id":320,"depth":47,"text":323,"children":406},[407,409],{"id":327,"depth":408,"text":330},3,{"id":360,"depth":408,"text":363},{"id":385,"depth":47,"text":388}]