[{"data":1,"prerenderedAt":1655},["ShallowReactive",2],{"navigation":3,"/passport/configuration":51,"/passport/configuration-surround":1652},[4,18,43],{"title":5,"path":6,"stem":7,"children":8,"icon":17},"Getting Started","/getting-started","1.getting-started/1.index",[9,12],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-simple-icons-laravel",{"title":13,"path":14,"stem":15,"icon":16},"Installation","/getting-started/installation","1.getting-started/2.installation","i-lucide-download",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Sanctum","/sanctum","2.sanctum",[23,28,33,38],{"title":24,"path":25,"stem":26,"icon":27},"Configuration","/sanctum/configuration","2.sanctum/1.configuration","i-lucide-cog",{"title":29,"path":30,"stem":31,"icon":32},"Cookie Authentication","/sanctum/cookie","2.sanctum/2.cookie","i-lucide-cookie",{"title":34,"path":35,"stem":36,"icon":37},"Sanctum 2FA Flow","/sanctum/2fa","2.sanctum/3.2fa","i-lucide-shield-check",{"title":39,"path":40,"stem":41,"icon":42},"Server Proxy","/sanctum/proxy","2.sanctum/4.proxy","i-lucide-waypoints",{"title":44,"path":45,"stem":46,"children":47,"page":17},"Passport","/passport","3.passport",[48],{"title":24,"path":49,"stem":50,"icon":27},"/passport/configuration","3.passport/1.configuration",{"id":52,"title":24,"body":53,"description":1645,"extension":1646,"links":1647,"meta":1648,"navigation":1649,"path":49,"seo":1650,"stem":50,"__hash__":1651},"docs/3.passport/1.configuration.md",{"type":54,"value":55,"toc":1634},"minimark",[56,65,72,75,80,86,103,531,535,562,566,571,742,752,756,759,1346,1350,1353,1388,1391,1395,1402,1523,1527,1530,1534,1544,1630],[57,58,59,60,64],"p",{},"Nuxt Umbu integrates seamlessly with Laravel Passport to provide ",[61,62,63],"strong",{},"secure OAuth2 authentication"," for your Nuxt\napplication.",[57,66,67,68,71],{},"This guide explains how to configure the ",[61,69,70],{},"Passport provider",".",[73,74],"hr",{},[76,77,79],"h2",{"id":78},"initial-setup","Initial setup",[57,81,82,83,85],{},"When using the ",[61,84,70],{},", two configurations are required:",[87,88,89,97],"ul",{},[90,91,92,96],"li",{},[93,94,95],"code",{},"baseURL"," → URL of your Laravel API",[90,98,99,102],{},[93,100,101],{},"runtimeConfig.secret"," → OAuth client credentials used by Laravel Passport",[104,105,111],"pre",{"className":106,"code":107,"filename":108,"language":109,"meta":110,"style":110},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n    modules: ['nuxt-umbu'],\n\n    auth: {\n        provider: 'passport'\n    },\n\n    runtimeConfig: {\n        secret: {\n            admin: {\n                client_id: process.env.AUTH_CLIENT_ID || '',\n                client_secret: process.env.AUTH_CLIENT_SECRET || '',\n                grant_type:\n                    (process.env.AUTH_GRANT_TYPE as 'password' | 'authorization_code') || 'password',\n            },\n            client: {\n                client_id: process.env.AUTH_CLIENT_ID || '',\n                client_secret: process.env.AUTH_CLIENT_SECRET || '',\n                grant_type:\n                    (process.env.AUTH_GRANT_TYPE as 'password' | 'authorization_code') || 'password',\n            },\n        },\n\n        public: {\n            baseURL: 'http://localhost:80', // Your Laravel API\n        }\n    }\n})\n","nuxt.config.ts","typescript","",[93,112,113,137,165,172,183,200,206,211,221,231,241,270,295,304,352,358,368,391,414,421,462,467,473,478,488,510,516,522],{"__ignoreMap":110},[114,115,118,122,125,129,133],"span",{"class":116,"line":117},"line",1,[114,119,121],{"class":120},"s7zQu","export",[114,123,124],{"class":120}," default",[114,126,128],{"class":127},"s2Zo4"," defineNuxtConfig",[114,130,132],{"class":131},"sTEyZ","(",[114,134,136],{"class":135},"sMK4o","{\n",[114,138,140,144,147,150,153,157,159,162],{"class":116,"line":139},2,[114,141,143],{"class":142},"swJcz","    modules",[114,145,146],{"class":135},":",[114,148,149],{"class":131}," [",[114,151,152],{"class":135},"'",[114,154,156],{"class":155},"sfazB","nuxt-umbu",[114,158,152],{"class":135},[114,160,161],{"class":131},"]",[114,163,164],{"class":135},",\n",[114,166,168],{"class":116,"line":167},3,[114,169,171],{"emptyLinePlaceholder":170},true,"\n",[114,173,175,178,180],{"class":116,"line":174},4,[114,176,177],{"class":142},"    auth",[114,179,146],{"class":135},[114,181,182],{"class":135}," {\n",[114,184,186,189,191,194,197],{"class":116,"line":185},5,[114,187,188],{"class":142},"        provider",[114,190,146],{"class":135},[114,192,193],{"class":135}," '",[114,195,196],{"class":155},"passport",[114,198,199],{"class":135},"'\n",[114,201,203],{"class":116,"line":202},6,[114,204,205],{"class":135},"    },\n",[114,207,209],{"class":116,"line":208},7,[114,210,171],{"emptyLinePlaceholder":170},[114,212,214,217,219],{"class":116,"line":213},8,[114,215,216],{"class":142},"    runtimeConfig",[114,218,146],{"class":135},[114,220,182],{"class":135},[114,222,224,227,229],{"class":116,"line":223},9,[114,225,226],{"class":142},"        secret",[114,228,146],{"class":135},[114,230,182],{"class":135},[114,232,234,237,239],{"class":116,"line":233},10,[114,235,236],{"class":142},"            admin",[114,238,146],{"class":135},[114,240,182],{"class":135},[114,242,244,247,249,252,254,257,259,262,265,268],{"class":116,"line":243},11,[114,245,246],{"class":142},"                client_id",[114,248,146],{"class":135},[114,250,251],{"class":131}," process",[114,253,71],{"class":135},[114,255,256],{"class":131},"env",[114,258,71],{"class":135},[114,260,261],{"class":131},"AUTH_CLIENT_ID ",[114,263,264],{"class":135},"||",[114,266,267],{"class":135}," ''",[114,269,164],{"class":135},[114,271,273,276,278,280,282,284,286,289,291,293],{"class":116,"line":272},12,[114,274,275],{"class":142},"                client_secret",[114,277,146],{"class":135},[114,279,251],{"class":131},[114,281,71],{"class":135},[114,283,256],{"class":131},[114,285,71],{"class":135},[114,287,288],{"class":131},"AUTH_CLIENT_SECRET ",[114,290,264],{"class":135},[114,292,267],{"class":135},[114,294,164],{"class":135},[114,296,298,301],{"class":116,"line":297},13,[114,299,300],{"class":142},"                grant_type",[114,302,303],{"class":135},":\n",[114,305,307,310,312,314,316,319,322,324,327,329,332,334,337,339,342,344,346,348,350],{"class":116,"line":306},14,[114,308,309],{"class":131},"                    (process",[114,311,71],{"class":135},[114,313,256],{"class":131},[114,315,71],{"class":135},[114,317,318],{"class":131},"AUTH_GRANT_TYPE ",[114,320,321],{"class":120},"as",[114,323,193],{"class":135},[114,325,326],{"class":155},"password",[114,328,152],{"class":135},[114,330,331],{"class":135}," |",[114,333,193],{"class":135},[114,335,336],{"class":155},"authorization_code",[114,338,152],{"class":135},[114,340,341],{"class":131},") ",[114,343,264],{"class":135},[114,345,193],{"class":135},[114,347,326],{"class":155},[114,349,152],{"class":135},[114,351,164],{"class":135},[114,353,355],{"class":116,"line":354},15,[114,356,357],{"class":135},"            },\n",[114,359,361,364,366],{"class":116,"line":360},16,[114,362,363],{"class":142},"            client",[114,365,146],{"class":135},[114,367,182],{"class":135},[114,369,371,373,375,377,379,381,383,385,387,389],{"class":116,"line":370},17,[114,372,246],{"class":142},[114,374,146],{"class":135},[114,376,251],{"class":131},[114,378,71],{"class":135},[114,380,256],{"class":131},[114,382,71],{"class":135},[114,384,261],{"class":131},[114,386,264],{"class":135},[114,388,267],{"class":135},[114,390,164],{"class":135},[114,392,394,396,398,400,402,404,406,408,410,412],{"class":116,"line":393},18,[114,395,275],{"class":142},[114,397,146],{"class":135},[114,399,251],{"class":131},[114,401,71],{"class":135},[114,403,256],{"class":131},[114,405,71],{"class":135},[114,407,288],{"class":131},[114,409,264],{"class":135},[114,411,267],{"class":135},[114,413,164],{"class":135},[114,415,417,419],{"class":116,"line":416},19,[114,418,300],{"class":142},[114,420,303],{"class":135},[114,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460],{"class":116,"line":423},20,[114,425,309],{"class":131},[114,427,71],{"class":135},[114,429,256],{"class":131},[114,431,71],{"class":135},[114,433,318],{"class":131},[114,435,321],{"class":120},[114,437,193],{"class":135},[114,439,326],{"class":155},[114,441,152],{"class":135},[114,443,331],{"class":135},[114,445,193],{"class":135},[114,447,336],{"class":155},[114,449,152],{"class":135},[114,451,341],{"class":131},[114,453,264],{"class":135},[114,455,193],{"class":135},[114,457,326],{"class":155},[114,459,152],{"class":135},[114,461,164],{"class":135},[114,463,465],{"class":116,"line":464},21,[114,466,357],{"class":135},[114,468,470],{"class":116,"line":469},22,[114,471,472],{"class":135},"        },\n",[114,474,476],{"class":116,"line":475},23,[114,477,171],{"emptyLinePlaceholder":170},[114,479,481,484,486],{"class":116,"line":480},24,[114,482,483],{"class":142},"        public",[114,485,146],{"class":135},[114,487,182],{"class":135},[114,489,491,494,496,498,501,503,506],{"class":116,"line":490},25,[114,492,493],{"class":142},"            baseURL",[114,495,146],{"class":135},[114,497,193],{"class":135},[114,499,500],{"class":155},"http://localhost:80",[114,502,152],{"class":135},[114,504,505],{"class":135},",",[114,507,509],{"class":508},"sHwdD"," // Your Laravel API\n",[114,511,513],{"class":116,"line":512},26,[114,514,515],{"class":135},"        }\n",[114,517,519],{"class":116,"line":518},27,[114,520,521],{"class":135},"    }\n",[114,523,525,528],{"class":116,"line":524},28,[114,526,527],{"class":135},"}",[114,529,530],{"class":131},")\n",[76,532,534],{"id":533},"why-these-values-are-required","Why these values are required",[87,536,537,546,556],{},[90,538,539,541,542,545],{},[93,540,95],{}," → used by ",[61,543,544],{},"Nuxt Umbu"," to communicate with the Laravel API.",[90,547,548,551,552,555],{},[93,549,550],{},"client_id"," and ",[93,553,554],{},"client_secret"," → required by Laravel Passport to generate OAuth tokens.",[90,557,558,561],{},[93,559,560],{},"grant_type"," → defines the authentication flow (password or authorization_code).",[76,563,565],{"id":564},"available-options","Available options",[57,567,568,569,71],{},"Below are the available authentication options when using the ",[61,570,70],{},[572,573,574,590],"table",{},[575,576,577],"thead",{},[578,579,580,584,587],"tr",{},[581,582,583],"th",{},"Parameter",[581,585,586],{},"Description",[581,588,589],{},"Default",[591,592,593,608,623,638,653,667,682,697,712,727],"tbody",{},[578,594,595,601,604],{},[596,597,598],"td",{},[93,599,600],{},"provider",[596,602,603],{},"Authentication provider",[596,605,606],{},[93,607,196],{},[578,609,610,615,618],{},[596,611,612],{},[93,613,614],{},"cookie.prefix",[596,616,617],{},"Prefix applied to authentication cookies",[596,619,620],{},[93,621,622],{},"__Secure-",[578,624,625,630,633],{},[596,626,627],{},[93,628,629],{},"cookie.options",[596,631,632],{},"Cookie configuration options",[596,634,635],{},[93,636,637],{},"{ httpOnly: true, secure: true }",[578,639,640,645,648],{},[596,641,642],{},[93,643,644],{},"strategies.\u003Cname>.redirect.login",[596,646,647],{},"Redirect path after login",[596,649,650],{},[93,651,652],{},"undefined",[578,654,655,660,663],{},[596,656,657],{},[93,658,659],{},"strategies.\u003Cname>.redirect.logout",[596,661,662],{},"Redirect path after logout",[596,664,665],{},[93,666,652],{},[578,668,669,674,677],{},[596,670,671],{},[93,672,673],{},"strategies.\u003Cname>.user.property",[596,675,676],{},"Property containing authenticated user data",[596,678,679],{},[93,680,681],{},"user",[578,683,684,689,692],{},[596,685,686],{},[93,687,688],{},"strategies.\u003Cname>.endpoints.login",[596,690,691],{},"Login endpoint configuration",[596,693,694],{},[93,695,696],{},"{ url: '/login', method: 'post', alias: 'Custom name' }",[578,698,699,704,707],{},[596,700,701],{},[93,702,703],{},"strategies.\u003Cname>.endpoints.user",[596,705,706],{},"Authenticated user endpoint",[596,708,709],{},[93,710,711],{},"{ url: '/api/user', method: 'get' }",[578,713,714,719,722],{},[596,715,716],{},[93,717,718],{},"strategies.\u003Cname>.endpoints.logout",[596,720,721],{},"Custom name used internally for the request",[596,723,724],{},[93,725,726],{},"{ alias: 'Custom name' }",[578,728,729,734,737],{},[596,730,731],{},[93,732,733],{},"strategies.\u003Cname>.endpoints.2fa",[596,735,736],{},"Two-factor authentication endpoint",[596,738,739],{},[93,740,741],{},"{ url: '/api/send-token-2fa', method: 'post', alias: 'Custom name' }",[57,743,744,745,71],{},"For complete typings, check the source file: ",[746,747,751],"a",{"href":748,"rel":749},"https://github.com/4sllan/nuxt-umbu/blob/main/src/auth.d.ts",[750],"nofollow","auth.d.ts",[76,753,755],{"id":754},"full-configuration-example","Full Configuration Example",[57,757,758],{},"Below is a complete example using Passport with custom endpoints and redirects.",[104,760,762],{"className":106,"code":761,"filename":108,"language":109,"meta":110,"style":110},"export default defineNuxtConfig({\n    modules: ['nuxt-umbu'],\n\n    auth: {\n        cookie: {\n            options: {\n                httpOnly: true,\n                secure: true,\n                sameSite: 'lax',\n                priority: 'high',\n            },\n            prefix: '__Secure-'\n        },\n        provider: 'passport',\n        strategies: {\n            client: {\n                redirect: {\n                    logout: \"/\",\n                    login: \"/\"\n                },\n                user: {\n                    property: \"profile\",\n                },\n                endpoints: {\n                    login: {url: \"/oauth/token\", method: \"post\", alias: \"auth token\"},\n                    user: {url: \"/api/admin/profile\", method: \"get\"},\n                    \"2fa\": {url: '/api/admin/token_2fa', method: 'post'},\n                },\n            }\n        }\n    },\n\n    runtimeConfig: {\n        secret: {\n            client: {\n                client_id: process.env.AUTH_CLIENT_ID || '',\n                client_secret: process.env.AUTH_CLIENT_SECRET || '',\n                grant_type:\n                    (process.env.AUTH_GRANT_TYPE as 'password' | 'authorization_code') || 'password',\n            },\n        },\n\n        public: {\n            baseURL: 'http://localhost:80', // Your Laravel API\n        }\n    }\n})\n",[93,763,764,776,794,798,806,815,824,837,848,864,880,884,897,901,915,924,932,941,959,973,978,987,1003,1007,1016,1068,1103,1142,1146,1152,1157,1162,1167,1176,1185,1194,1217,1240,1247,1288,1293,1298,1303,1312,1329,1334,1339],{"__ignoreMap":110},[114,765,766,768,770,772,774],{"class":116,"line":117},[114,767,121],{"class":120},[114,769,124],{"class":120},[114,771,128],{"class":127},[114,773,132],{"class":131},[114,775,136],{"class":135},[114,777,778,780,782,784,786,788,790,792],{"class":116,"line":139},[114,779,143],{"class":142},[114,781,146],{"class":135},[114,783,149],{"class":131},[114,785,152],{"class":135},[114,787,156],{"class":155},[114,789,152],{"class":135},[114,791,161],{"class":131},[114,793,164],{"class":135},[114,795,796],{"class":116,"line":167},[114,797,171],{"emptyLinePlaceholder":170},[114,799,800,802,804],{"class":116,"line":174},[114,801,177],{"class":142},[114,803,146],{"class":135},[114,805,182],{"class":135},[114,807,808,811,813],{"class":116,"line":185},[114,809,810],{"class":142},"        cookie",[114,812,146],{"class":135},[114,814,182],{"class":135},[114,816,817,820,822],{"class":116,"line":202},[114,818,819],{"class":142},"            options",[114,821,146],{"class":135},[114,823,182],{"class":135},[114,825,826,829,831,835],{"class":116,"line":208},[114,827,828],{"class":142},"                httpOnly",[114,830,146],{"class":135},[114,832,834],{"class":833},"sfNiH"," true",[114,836,164],{"class":135},[114,838,839,842,844,846],{"class":116,"line":213},[114,840,841],{"class":142},"                secure",[114,843,146],{"class":135},[114,845,834],{"class":833},[114,847,164],{"class":135},[114,849,850,853,855,857,860,862],{"class":116,"line":223},[114,851,852],{"class":142},"                sameSite",[114,854,146],{"class":135},[114,856,193],{"class":135},[114,858,859],{"class":155},"lax",[114,861,152],{"class":135},[114,863,164],{"class":135},[114,865,866,869,871,873,876,878],{"class":116,"line":233},[114,867,868],{"class":142},"                priority",[114,870,146],{"class":135},[114,872,193],{"class":135},[114,874,875],{"class":155},"high",[114,877,152],{"class":135},[114,879,164],{"class":135},[114,881,882],{"class":116,"line":243},[114,883,357],{"class":135},[114,885,886,889,891,893,895],{"class":116,"line":272},[114,887,888],{"class":142},"            prefix",[114,890,146],{"class":135},[114,892,193],{"class":135},[114,894,622],{"class":155},[114,896,199],{"class":135},[114,898,899],{"class":116,"line":297},[114,900,472],{"class":135},[114,902,903,905,907,909,911,913],{"class":116,"line":306},[114,904,188],{"class":142},[114,906,146],{"class":135},[114,908,193],{"class":135},[114,910,196],{"class":155},[114,912,152],{"class":135},[114,914,164],{"class":135},[114,916,917,920,922],{"class":116,"line":354},[114,918,919],{"class":142},"        strategies",[114,921,146],{"class":135},[114,923,182],{"class":135},[114,925,926,928,930],{"class":116,"line":360},[114,927,363],{"class":142},[114,929,146],{"class":135},[114,931,182],{"class":135},[114,933,934,937,939],{"class":116,"line":370},[114,935,936],{"class":142},"                redirect",[114,938,146],{"class":135},[114,940,182],{"class":135},[114,942,943,946,948,951,954,957],{"class":116,"line":393},[114,944,945],{"class":142},"                    logout",[114,947,146],{"class":135},[114,949,950],{"class":135}," \"",[114,952,953],{"class":155},"/",[114,955,956],{"class":135},"\"",[114,958,164],{"class":135},[114,960,961,964,966,968,970],{"class":116,"line":416},[114,962,963],{"class":142},"                    login",[114,965,146],{"class":135},[114,967,950],{"class":135},[114,969,953],{"class":155},[114,971,972],{"class":135},"\"\n",[114,974,975],{"class":116,"line":423},[114,976,977],{"class":135},"                },\n",[114,979,980,983,985],{"class":116,"line":464},[114,981,982],{"class":142},"                user",[114,984,146],{"class":135},[114,986,182],{"class":135},[114,988,989,992,994,996,999,1001],{"class":116,"line":469},[114,990,991],{"class":142},"                    property",[114,993,146],{"class":135},[114,995,950],{"class":135},[114,997,998],{"class":155},"profile",[114,1000,956],{"class":135},[114,1002,164],{"class":135},[114,1004,1005],{"class":116,"line":475},[114,1006,977],{"class":135},[114,1008,1009,1012,1014],{"class":116,"line":480},[114,1010,1011],{"class":142},"                endpoints",[114,1013,146],{"class":135},[114,1015,182],{"class":135},[114,1017,1018,1020,1022,1025,1028,1030,1032,1035,1037,1039,1042,1044,1046,1049,1051,1053,1056,1058,1060,1063,1065],{"class":116,"line":490},[114,1019,963],{"class":142},[114,1021,146],{"class":135},[114,1023,1024],{"class":135}," {",[114,1026,1027],{"class":142},"url",[114,1029,146],{"class":135},[114,1031,950],{"class":135},[114,1033,1034],{"class":155},"/oauth/token",[114,1036,956],{"class":135},[114,1038,505],{"class":135},[114,1040,1041],{"class":142}," method",[114,1043,146],{"class":135},[114,1045,950],{"class":135},[114,1047,1048],{"class":155},"post",[114,1050,956],{"class":135},[114,1052,505],{"class":135},[114,1054,1055],{"class":142}," alias",[114,1057,146],{"class":135},[114,1059,950],{"class":135},[114,1061,1062],{"class":155},"auth token",[114,1064,956],{"class":135},[114,1066,1067],{"class":135},"},\n",[114,1069,1070,1073,1075,1077,1079,1081,1083,1086,1088,1090,1092,1094,1096,1099,1101],{"class":116,"line":512},[114,1071,1072],{"class":142},"                    user",[114,1074,146],{"class":135},[114,1076,1024],{"class":135},[114,1078,1027],{"class":142},[114,1080,146],{"class":135},[114,1082,950],{"class":135},[114,1084,1085],{"class":155},"/api/admin/profile",[114,1087,956],{"class":135},[114,1089,505],{"class":135},[114,1091,1041],{"class":142},[114,1093,146],{"class":135},[114,1095,950],{"class":135},[114,1097,1098],{"class":155},"get",[114,1100,956],{"class":135},[114,1102,1067],{"class":135},[114,1104,1105,1108,1111,1113,1115,1117,1119,1121,1123,1126,1128,1130,1132,1134,1136,1138,1140],{"class":116,"line":518},[114,1106,1107],{"class":135},"                    \"",[114,1109,1110],{"class":142},"2fa",[114,1112,956],{"class":135},[114,1114,146],{"class":135},[114,1116,1024],{"class":135},[114,1118,1027],{"class":142},[114,1120,146],{"class":135},[114,1122,193],{"class":135},[114,1124,1125],{"class":155},"/api/admin/token_2fa",[114,1127,152],{"class":135},[114,1129,505],{"class":135},[114,1131,1041],{"class":142},[114,1133,146],{"class":135},[114,1135,193],{"class":135},[114,1137,1048],{"class":155},[114,1139,152],{"class":135},[114,1141,1067],{"class":135},[114,1143,1144],{"class":116,"line":524},[114,1145,977],{"class":135},[114,1147,1149],{"class":116,"line":1148},29,[114,1150,1151],{"class":135},"            }\n",[114,1153,1155],{"class":116,"line":1154},30,[114,1156,515],{"class":135},[114,1158,1160],{"class":116,"line":1159},31,[114,1161,205],{"class":135},[114,1163,1165],{"class":116,"line":1164},32,[114,1166,171],{"emptyLinePlaceholder":170},[114,1168,1170,1172,1174],{"class":116,"line":1169},33,[114,1171,216],{"class":142},[114,1173,146],{"class":135},[114,1175,182],{"class":135},[114,1177,1179,1181,1183],{"class":116,"line":1178},34,[114,1180,226],{"class":142},[114,1182,146],{"class":135},[114,1184,182],{"class":135},[114,1186,1188,1190,1192],{"class":116,"line":1187},35,[114,1189,363],{"class":142},[114,1191,146],{"class":135},[114,1193,182],{"class":135},[114,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215],{"class":116,"line":1196},36,[114,1198,246],{"class":142},[114,1200,146],{"class":135},[114,1202,251],{"class":131},[114,1204,71],{"class":135},[114,1206,256],{"class":131},[114,1208,71],{"class":135},[114,1210,261],{"class":131},[114,1212,264],{"class":135},[114,1214,267],{"class":135},[114,1216,164],{"class":135},[114,1218,1220,1222,1224,1226,1228,1230,1232,1234,1236,1238],{"class":116,"line":1219},37,[114,1221,275],{"class":142},[114,1223,146],{"class":135},[114,1225,251],{"class":131},[114,1227,71],{"class":135},[114,1229,256],{"class":131},[114,1231,71],{"class":135},[114,1233,288],{"class":131},[114,1235,264],{"class":135},[114,1237,267],{"class":135},[114,1239,164],{"class":135},[114,1241,1243,1245],{"class":116,"line":1242},38,[114,1244,300],{"class":142},[114,1246,303],{"class":135},[114,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286],{"class":116,"line":1249},39,[114,1251,309],{"class":131},[114,1253,71],{"class":135},[114,1255,256],{"class":131},[114,1257,71],{"class":135},[114,1259,318],{"class":131},[114,1261,321],{"class":120},[114,1263,193],{"class":135},[114,1265,326],{"class":155},[114,1267,152],{"class":135},[114,1269,331],{"class":135},[114,1271,193],{"class":135},[114,1273,336],{"class":155},[114,1275,152],{"class":135},[114,1277,341],{"class":131},[114,1279,264],{"class":135},[114,1281,193],{"class":135},[114,1283,326],{"class":155},[114,1285,152],{"class":135},[114,1287,164],{"class":135},[114,1289,1291],{"class":116,"line":1290},40,[114,1292,357],{"class":135},[114,1294,1296],{"class":116,"line":1295},41,[114,1297,472],{"class":135},[114,1299,1301],{"class":116,"line":1300},42,[114,1302,171],{"emptyLinePlaceholder":170},[114,1304,1306,1308,1310],{"class":116,"line":1305},43,[114,1307,483],{"class":142},[114,1309,146],{"class":135},[114,1311,182],{"class":135},[114,1313,1315,1317,1319,1321,1323,1325,1327],{"class":116,"line":1314},44,[114,1316,493],{"class":142},[114,1318,146],{"class":135},[114,1320,193],{"class":135},[114,1322,500],{"class":155},[114,1324,152],{"class":135},[114,1326,505],{"class":135},[114,1328,509],{"class":508},[114,1330,1332],{"class":116,"line":1331},45,[114,1333,515],{"class":135},[114,1335,1337],{"class":116,"line":1336},46,[114,1338,521],{"class":135},[114,1340,1342,1344],{"class":116,"line":1341},47,[114,1343,527],{"class":135},[114,1345,530],{"class":131},[76,1347,1349],{"id":1348},"understanding-the-flow","Understanding the Flow",[57,1351,1352],{},"When using Passport, the authentication flow works as follows:",[1354,1355,1356,1362,1369,1375,1378,1385],"ol",{},[90,1357,1358,1359,71],{},"The application requests ",[93,1360,1361],{},"/Passport/csrf-cookie",[90,1363,1364,1365,1368],{},"Laravel returns the ",[93,1366,1367],{},"XSRF-TOKEN"," cookie.",[90,1370,1371,1372,71],{},"The client sends credentials to ",[93,1373,1374],{},"/login",[90,1376,1377],{},"Laravel creates an authenticated session.",[90,1379,1380,1381,1384],{},"The app requests ",[93,1382,1383],{},"/api/profile"," (or the configured user endpoint).",[90,1386,1387],{},"The authenticated user data is stored in the application state.",[57,1389,1390],{},"All of this process is handled automatically by Nuxt Umbu.",[76,1392,1394],{"id":1393},"overriding-configuration","Overriding Configuration",[57,1396,1397,1398,1401],{},"You can customize behavior inside the ",[93,1399,1400],{},"auth"," object:",[104,1403,1405],{"className":106,"code":1404,"filename":108,"language":109,"meta":110,"style":110},"export default defineNuxtConfig({\n    modules: ['nuxt-umbu'],\n\n    auth: {\n        strategies: {\n            client: {\n                redirect: {\n                    login: '/dashboard',\n                    logout: '/'\n                }\n            }\n        }\n    }\n})\n",[93,1406,1407,1419,1437,1441,1449,1457,1465,1473,1488,1500,1505,1509,1513,1517],{"__ignoreMap":110},[114,1408,1409,1411,1413,1415,1417],{"class":116,"line":117},[114,1410,121],{"class":120},[114,1412,124],{"class":120},[114,1414,128],{"class":127},[114,1416,132],{"class":131},[114,1418,136],{"class":135},[114,1420,1421,1423,1425,1427,1429,1431,1433,1435],{"class":116,"line":139},[114,1422,143],{"class":142},[114,1424,146],{"class":135},[114,1426,149],{"class":131},[114,1428,152],{"class":135},[114,1430,156],{"class":155},[114,1432,152],{"class":135},[114,1434,161],{"class":131},[114,1436,164],{"class":135},[114,1438,1439],{"class":116,"line":167},[114,1440,171],{"emptyLinePlaceholder":170},[114,1442,1443,1445,1447],{"class":116,"line":174},[114,1444,177],{"class":142},[114,1446,146],{"class":135},[114,1448,182],{"class":135},[114,1450,1451,1453,1455],{"class":116,"line":185},[114,1452,919],{"class":142},[114,1454,146],{"class":135},[114,1456,182],{"class":135},[114,1458,1459,1461,1463],{"class":116,"line":202},[114,1460,363],{"class":142},[114,1462,146],{"class":135},[114,1464,182],{"class":135},[114,1466,1467,1469,1471],{"class":116,"line":208},[114,1468,936],{"class":142},[114,1470,146],{"class":135},[114,1472,182],{"class":135},[114,1474,1475,1477,1479,1481,1484,1486],{"class":116,"line":213},[114,1476,963],{"class":142},[114,1478,146],{"class":135},[114,1480,193],{"class":135},[114,1482,1483],{"class":155},"/dashboard",[114,1485,152],{"class":135},[114,1487,164],{"class":135},[114,1489,1490,1492,1494,1496,1498],{"class":116,"line":223},[114,1491,945],{"class":142},[114,1493,146],{"class":135},[114,1495,193],{"class":135},[114,1497,953],{"class":155},[114,1499,199],{"class":135},[114,1501,1502],{"class":116,"line":233},[114,1503,1504],{"class":135},"                }\n",[114,1506,1507],{"class":116,"line":243},[114,1508,1151],{"class":135},[114,1510,1511],{"class":116,"line":272},[114,1512,515],{"class":135},[114,1514,1515],{"class":116,"line":297},[114,1516,521],{"class":135},[114,1518,1519,1521],{"class":116,"line":306},[114,1520,527],{"class":135},[114,1522,530],{"class":131},[76,1524,1526],{"id":1525},"using-environment-variables","Using Environment Variables",[57,1528,1529],{},"It is recommended to configure `baseURL using environment variables:",[1531,1532,1533],"h3",{"id":256},".env",[104,1535,1538],{"className":1536,"code":1537,"language":256,"meta":110,"style":110},"language-env shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","NUXT_PUBLIC_BASE_URL=http://localhost:80\n",[93,1539,1540],{"__ignoreMap":110},[114,1541,1542],{"class":116,"line":117},[114,1543,1537],{},[104,1545,1547],{"className":106,"code":1546,"filename":108,"language":109,"meta":110,"style":110},"export default defineNuxtConfig({\n    modules: ['nuxt-umbu'],\n\n    runtimeConfig: {\n        public: {\n            baseURL: process.env.NUXT_PUBLIC_BASE_URL\n        }\n    }\n})\n",[93,1548,1549,1561,1579,1583,1591,1599,1616,1620,1624],{"__ignoreMap":110},[114,1550,1551,1553,1555,1557,1559],{"class":116,"line":117},[114,1552,121],{"class":120},[114,1554,124],{"class":120},[114,1556,128],{"class":127},[114,1558,132],{"class":131},[114,1560,136],{"class":135},[114,1562,1563,1565,1567,1569,1571,1573,1575,1577],{"class":116,"line":139},[114,1564,143],{"class":142},[114,1566,146],{"class":135},[114,1568,149],{"class":131},[114,1570,152],{"class":135},[114,1572,156],{"class":155},[114,1574,152],{"class":135},[114,1576,161],{"class":131},[114,1578,164],{"class":135},[114,1580,1581],{"class":116,"line":167},[114,1582,171],{"emptyLinePlaceholder":170},[114,1584,1585,1587,1589],{"class":116,"line":174},[114,1586,216],{"class":142},[114,1588,146],{"class":135},[114,1590,182],{"class":135},[114,1592,1593,1595,1597],{"class":116,"line":185},[114,1594,483],{"class":142},[114,1596,146],{"class":135},[114,1598,182],{"class":135},[114,1600,1601,1603,1605,1607,1609,1611,1613],{"class":116,"line":202},[114,1602,493],{"class":142},[114,1604,146],{"class":135},[114,1606,251],{"class":131},[114,1608,71],{"class":135},[114,1610,256],{"class":131},[114,1612,71],{"class":135},[114,1614,1615],{"class":131},"NUXT_PUBLIC_BASE_URL\n",[114,1617,1618],{"class":116,"line":208},[114,1619,515],{"class":135},[114,1621,1622],{"class":116,"line":213},[114,1623,521],{"class":135},[114,1625,1626,1628],{"class":116,"line":223},[114,1627,527],{"class":135},[114,1629,530],{"class":131},[1631,1632,1633],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":110,"searchDepth":117,"depth":139,"links":1635},[1636,1637,1638,1639,1640,1641,1642],{"id":78,"depth":139,"text":79},{"id":533,"depth":139,"text":534},{"id":564,"depth":139,"text":565},{"id":754,"depth":139,"text":755},{"id":1348,"depth":139,"text":1349},{"id":1393,"depth":139,"text":1394},{"id":1525,"depth":139,"text":1526,"children":1643},[1644],{"id":256,"depth":167,"text":1533},"How to configure Laravel Passport authentication in Nuxt Umbu","md",null,{},{"icon":27},{"title":24,"description":1645},"fVQePEy8i3ZX9Rt676i2CWy6k12zODdbeLMAPqfhEiI",[1653,1647],{"title":39,"path":40,"stem":41,"description":1654,"icon":42,"children":-1},"Planned internal server proxy for Sanctum SSR support",1774883773199]