Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CSRF-Token error on 0.4.15 #188

Closed
ahoiroman opened this issue Oct 1, 2024 · 20 comments · Fixed by #189
Closed

CSRF-Token error on 0.4.15 #188

ahoiroman opened this issue Oct 1, 2024 · 20 comments · Fixed by #189
Assignees
Labels
bug Something isn't working

Comments

@ahoiroman
Copy link

Describe the bug

After upgrading to 0.4.15, I am getting an csrf-token mismatch error when I try to login.

Expected behavior

Login should happen

Actual behavior

The initial request to get a csrf-token is returned with 204:

{
	"sec-fetch-mode": "cors",
	"x-real-ip": "127.0.0.1",
	"x-nginx-proxy": "true",
	"x-forwarded-proto": "http",
	"x-forwarded-port": "55043",
	"x-forwarded-for": "127.0.0.1",
	"x-client-verify": "SUCCESS",
	"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36",
	"referer": "http://web.example.test/login",
	"dnt": "1",
	"accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
	"accept-encoding": "gzip, deflate",
	"accept": "application/json",
	"connection": "keep-alive",
	"host": "api.example.test"
}

The request to /login returns 419:

This is the payload:

{
	"email": "[email protected]",
	"password": "********"
}

These are the headers:

{
	"content-length": "50",
	"sec-fetch-mode": "cors",
	"x-real-ip": "127.0.0.1",
	"x-nginx-proxy": "true",
	"x-forwarded-proto": "http",
	"x-forwarded-port": "55043",
	"x-forwarded-for": "127.0.0.1",
	"x-client-verify": "SUCCESS",
	"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36",
	"referer": "http://web.example.test/login",
	"origin": "http://web.example.test",
	"dnt": "1",
	"cookie": "XSRF-TOKEN=eyJpdiI6IlRUN3FlNlNoS3pYM0RIUngyUDU5bFE9PSIsInZhbHVlIjoiMnlhZVcxUC9GS210UHpBMkh3dXNhZFViNWtaa1BaN3FqU0p2TWlBNGFPdndycUJ4dEQyY3ZEVEN2bXpVYXFqU2VRWlR3czR1Q1k2MzdTWmNRNklPVmZZZWJ1dFJNRk1JcUcvNm4wMUVXZmo5SXR5Y29MUXo1V2h6Q2NOd0U3TzciLCJtYWMiOiJmMWU1N2E1ZWFjMzNiZWVhYWRlNGQ5MTQ0NDg5NWVjMjMxODEzZGU3MDhjYjEzZDNmOWVhM2Y4MDVkNGIwYTFiIiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6ImVLTlFKVENFZzF4YlJSeGJ4ZWpVbHc9PSIsInZhbHVlIjoiN0VNbWlnUEtweDBpWlpaaGNWcndzRm52a2tpeDh5bi91dFdoRGRqcWV4VlN0MmR2SFNTS1k4Ni93b3A0eWNqd0dPd21GOXF5MGdiVCt2Y1JsTlkvQmNaSWpLM3JhbGsxUHF0NVE2clg2bFA4SjRoQ3FyMi9CdW1hY3NVU09Zem8iLCJtYWMiOiJiODNhMGRhMTAwYmM4MjdlNzRlNjkxYjZmYjEyNDViYzI1MWZjODJmYTBlZTUwNjIyZDA3ZTRmMjExN2QyNWE2IiwidGFnIjoiIn0%3D",
	"content-type": "application/json",
	"accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
	"accept-encoding": "gzip, deflate",
	"accept": "application/json",
	"connection": "keep-alive",
	"host": "api.example.test"
}

Sure enough, X-XSRF-TOKEN is missing.

The Laravel sanctum docs do say that this is required:

During this request, Laravel will set an XSRF-TOKEN cookie containing the current CSRF token. This token should then be passed in an X-XSRF-TOKEN header on subsequent requests, which some HTTP client libraries like Axios and the Angular HttpClient will do automatically for you.

https://laravel.com/docs/11.x/sanctum#csrf-protection

Module information

  • Version: 0.4.15

Nuxt environment:

  • SSR Enabled: yes
  • Environment: local
@manchenkoff
Copy link
Owner

manchenkoff commented Oct 1, 2024

Let's check what is the problem here 😄

May I ask you to:

  • switch sanctum.logLevel to 5
  • start the app and try to log in
  • stop the app
  • share the logs output from nuxt-auth-sanctum module here (including response headers)

@ahoiroman
Copy link
Author

ahoiroman commented Oct 1, 2024

Sure :-)

This is the output on the terminal while running the app. This is the initial request. On the login-request, there is no log written:

[nuxt-auth-sanctum:ssr] ⚙ Fetching user identity on plugin initialization
[nuxt-auth-sanctum:ssr] ⚙ [handleRequestHeaders] headers modified [ 'Accept' ]
[nuxt-auth-sanctum:ssr] ⚙ [handleRequestCookies] headers modified [ 'Accept', 'Referer', 'Origin', 'Cookie', 'User-Agent' ]
[nuxt-auth-sanctum:ssr] ℹ Request headers for "/api/user/current" Headers {}
[nuxt-auth-sanctum:ssr] → Request headers for "/api/user/current" Headers {}
  at FancyReporter.formatLogObj (node_modules/.pnpm/[email protected]/node_modules/consola/dist/shared/consola.36c0034f.mjs:591:20)
  at FancyReporter.log (node_modules/.pnpm/[email protected]/node_modules/consola/dist/shared/consola.06ad8a64.mjs:51:23)
  at Consola._log (node_modules/.pnpm/[email protected]/node_modules/consola/dist/core.mjs:381:16)
  at resolveLog (node_modules/.pnpm/[email protected]/node_modules/consola/dist/core.mjs:349:14)
  at Consola._logFn (node_modules/.pnpm/[email protected]/node_modules/consola/dist/core.mjs:377:5)
  at Consola.trace (node_modules/.pnpm/[email protected]/node_modules/consola/dist/core.mjs:306:19)
  at onRequest (node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/nuxt-auth-sanctum/dist/runtime/httpFactory.js:62:14)
  at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
  at async callHooks (node_modules/.pnpm/[email protected]/node_modules/ofetch/dist/shared/ofetch.4747642d.mjs:134:7)
  at async $fetchRaw2 (node_modules/.pnpm/[email protected]/node_modules/ofetch/dist/shared/ofetch.4747642d.mjs:205:7)
[nuxt-auth-sanctum:ssr] ⚙ No cookies to pass to the client [http://web.example.test/backend/api/user/current]
[nuxt-auth-sanctum:ssr] → Response headers for "http://web.example.test/backend/api/user/current" Headers { server: 'nginx/1.25.4',
  date: 'Tue, 01 Oct 2024 14:02:22 GMT',
  'content-type': 'application/json',
  'transfer-encoding': 'chunked',
  connection: 'keep-alive',
  'access-control-allow-credentials': 'true',
  'access-control-allow-origin': 'http://web.example.test',
  'cache-control': 'no-cache, private',
  'x-powered-by': 'PHP/8.3.11' }
  at FancyReporter.formatLogObj (node_modules/.pnpm/[email protected]/node_modules/consola/dist/shared/consola.36c0034f.mjs:591:20)
  at FancyReporter.log (node_modules/.pnpm/[email protected]/node_modules/consola/dist/shared/consola.06ad8a64.mjs:51:23)
  at Consola._log (node_modules/.pnpm/[email protected]/node_modules/consola/dist/core.mjs:381:16)
  at resolveLog (node_modules/.pnpm/[email protected]/node_modules/consola/dist/core.mjs:349:14)
  at Consola._logFn (node_modules/.pnpm/[email protected]/node_modules/consola/dist/core.mjs:377:5)
  at Consola.trace (node_modules/.pnpm/[email protected]/node_modules/consola/dist/core.mjs:306:19)
  at onResponse (node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/nuxt-auth-sanctum/dist/runtime/httpFactory.js:73:14)
  at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
  at async callHooks (node_modules/.pnpm/[email protected]/node_modules/ofetch/dist/shared/ofetch.4747642d.mjs:134:7)
  at async $fetchRaw2 (node_modules/.pnpm/[email protected]/node_modules/ofetch/dist/shared/ofetch.4747642d.mjs:287:7)
[nuxt-auth-sanctum:ssr] ⚙ User is not authenticated on plugin initialization, status: 401

This is the log that is sent to the browser console when clicking the login-button:

UserAuthForm.vue:57 nuxt-auth-sanctum:csr:debug [handleRequestHeaders] headers modified ['Accept']
browser.mjs?v=1e3ac340:44 nuxt-auth-sanctum:csr:debug Added X-XSRF-TOKEN header to pass to the API
browser.mjs?v=1e3ac340:44 nuxt-auth-sanctum:csr:debug [handleRequestCookies] headers modified (2) ['Accept', 'X-XSRF-TOKEN']
app.config.ts:64 nuxt-auth-sanctum:csr:info Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6ImQ3WUk0YnJkYmJWWWovVjZ0NlNzTUE9PSIsInZhbH…yMGQwZDRlYWEzN2NkMDI2ZGYxMzIxNjBjIiwidGFnIjoiIn0='}Accept: "application/json"X-XSRF-TOKEN: "eyJpdiI6ImQ3WUk0YnJkYmJWWWovVjZ0NlNzTUE9PSIsInZhbHVlIjoiNGFxWWNGdkFmM09iM3NqSEJDb0wzWGt0dVV1Um10ZFhjaHdrb21zejc2VnhaNlV0NjNMZ2ZqOW1ZZUpOM09KUVdhdDgraXZHY3pwMUNmYnRVUG85Q0xtOHNOa2tyOTkvWDVGNmVEbXJTSnl2OExTcGw4REpXMEY1VUlYNjlkT0IiLCJtYWMiOiI3YjI4YWE3MTljMmNkYTVlZGViNDAxYzMwYjQyNDQ1Yzk3MTNjMzYyMGQwZDRlYWEzN2NkMDI2ZGYxMzIxNjBjIiwidGFnIjoiIn0="[[Prototype]]: Headersappend: ƒ append()delete: ƒ delete()entries: ƒ entries()forEach: ƒ forEach()get: ƒ ()getSetCookie: ƒ getSetCookie()has: ƒ has()keys: ƒ keys()set: ƒ ()values: ƒ values()constructor: ƒ Headers()Symbol(Symbol.iterator): ƒ entries()Symbol(Symbol.toStringTag): "Headers"[[Prototype]]: Object
browser.mjs?v=1e3ac340:44 nuxt-auth-sanctum:csr:trace Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6ImQ3WUk0YnJkYmJWWWovVjZ0NlNzTUE9PSIsInZhbH…yMGQwZDRlYWEzN2NkMDI2ZGYxMzIxNjBjIiwidGFnIjoiIn0='}
UserAuthForm.vue:57 
        
        
       POST http://web.example.test/backend/login 419 (unknown status)
(anonym) @ index.mjs?v=1e3ac340:21
$fetchRaw2 @ ofetch.4747642d.mjs?v=1e3ac340:249
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=1e3ac340:304
login @ useSanctumAuth.js?v=1e3ac340:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=1e3ac340:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=1e3ac340:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:204
emit @ runtime-core.esm-bundler.js?v=1e3ac340:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:204
emit @ runtime-core.esm-bundler.js?v=1e3ac340:6347
(anonym) @ runtime-core.esm-bundler.js?v=1e3ac340:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=1e3ac340:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:204
invoker @ runtime-dom.esm-bundler.js?v=1e3ac340:713
20 weitere Frames anzeigen
Weniger anzeigen
browser.mjs?v=1e3ac340:44 nuxt-auth-sanctum:csr:trace Response headers for "http://web.example.test/backend/login" Headers {}
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:warn CSRF token mismatch, check your API configuration
log @ browser.mjs?v=1e3ac340:44
_log @ core.mjs?v=1e3ac340:381
resolveLog @ core.mjs?v=1e3ac340:349
_logFn @ core.mjs?v=1e3ac340:377
(anonym) @ core.mjs?v=1e3ac340:306
onResponseError @ httpFactory.js?v=1e3ac340:72
callHooks @ ofetch.4747642d.mjs?v=1e3ac340:134
$fetchRaw2 @ ofetch.4747642d.mjs?v=1e3ac340:294
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=1e3ac340:304
login @ useSanctumAuth.js?v=1e3ac340:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=1e3ac340:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=1e3ac340:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:204
emit @ runtime-core.esm-bundler.js?v=1e3ac340:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:204
emit @ runtime-core.esm-bundler.js?v=1e3ac340:6347
(anonym) @ runtime-core.esm-bundler.js?v=1e3ac340:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=1e3ac340:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:204
invoker @ runtime-dom.esm-bundler.js?v=1e3ac340:713
26 weitere Frames anzeigen
Weniger anzeigen

and

UserAuthForm.vue:57 nuxt-auth-sanctum:csr:debug [handleRequestHeaders] headers modified ['Accept']
browser.mjs?v=1e3ac340:44 nuxt-auth-sanctum:csr:debug Added X-XSRF-TOKEN header to pass to the API
browser.mjs?v=1e3ac340:44 nuxt-auth-sanctum:csr:debug [handleRequestCookies] headers modified (2) ['Accept', 'X-XSRF-TOKEN']
app.config.ts:64 nuxt-auth-sanctum:csr:info Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6ImQ3WUk0YnJkYmJWWWovVjZ0NlNzTUE9PSIsInZhbH…yMGQwZDRlYWEzN2NkMDI2ZGYxMzIxNjBjIiwidGFnIjoiIn0='}Accept: "application/json"X-XSRF-TOKEN: "eyJpdiI6ImQ3WUk0YnJkYmJWWWovVjZ0NlNzTUE9PSIsInZhbHVlIjoiNGFxWWNGdkFmM09iM3NqSEJDb0wzWGt0dVV1Um10ZFhjaHdrb21zejc2VnhaNlV0NjNMZ2ZqOW1ZZUpOM09KUVdhdDgraXZHY3pwMUNmYnRVUG85Q0xtOHNOa2tyOTkvWDVGNmVEbXJTSnl2OExTcGw4REpXMEY1VUlYNjlkT0IiLCJtYWMiOiI3YjI4YWE3MTljMmNkYTVlZGViNDAxYzMwYjQyNDQ1Yzk3MTNjMzYyMGQwZDRlYWEzN2NkMDI2ZGYxMzIxNjBjIiwidGFnIjoiIn0="[[Prototype]]: Headersappend: ƒ append()delete: ƒ delete()entries: ƒ entries()forEach: ƒ forEach()get: ƒ ()getSetCookie: ƒ getSetCookie()has: ƒ has()keys: ƒ keys()set: ƒ ()values: ƒ values()constructor: ƒ Headers()Symbol(Symbol.iterator): ƒ entries()Symbol(Symbol.toStringTag): "Headers"[[Prototype]]: Object
browser.mjs?v=1e3ac340:44 nuxt-auth-sanctum:csr:trace Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6ImQ3WUk0YnJkYmJWWWovVjZ0NlNzTUE9PSIsInZhbH…yMGQwZDRlYWEzN2NkMDI2ZGYxMzIxNjBjIiwidGFnIjoiIn0='}
UserAuthForm.vue:57 
        
        
       POST http://web.example.test/backend/login 419 (unknown status)
(anonym) @ index.mjs?v=1e3ac340:21
$fetchRaw2 @ ofetch.4747642d.mjs?v=1e3ac340:249
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=1e3ac340:304
login @ useSanctumAuth.js?v=1e3ac340:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=1e3ac340:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=1e3ac340:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:204
emit @ runtime-core.esm-bundler.js?v=1e3ac340:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:204
emit @ runtime-core.esm-bundler.js?v=1e3ac340:6347
(anonym) @ runtime-core.esm-bundler.js?v=1e3ac340:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=1e3ac340:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:204
invoker @ runtime-dom.esm-bundler.js?v=1e3ac340:713
20 weitere Frames anzeigen
Weniger anzeigen
browser.mjs?v=1e3ac340:44 nuxt-auth-sanctum:csr:trace Response headers for "http://web.example.test/backend/login" Headers {}
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:warn CSRF token mismatch, check your API configuration
log @ browser.mjs?v=1e3ac340:44
_log @ core.mjs?v=1e3ac340:381
resolveLog @ core.mjs?v=1e3ac340:349
_logFn @ core.mjs?v=1e3ac340:377
(anonym) @ core.mjs?v=1e3ac340:306
onResponseError @ httpFactory.js?v=1e3ac340:72
callHooks @ ofetch.4747642d.mjs?v=1e3ac340:134
$fetchRaw2 @ ofetch.4747642d.mjs?v=1e3ac340:294
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=1e3ac340:304
login @ useSanctumAuth.js?v=1e3ac340:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=1e3ac340:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=1e3ac340:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:204
emit @ runtime-core.esm-bundler.js?v=1e3ac340:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:204
emit @ runtime-core.esm-bundler.js?v=1e3ac340:6347
(anonym) @ runtime-core.esm-bundler.js?v=1e3ac340:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=1e3ac340:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=1e3ac340:204
invoker @ runtime-dom.esm-bundler.js?v=1e3ac340:713
26 weitere Frames anzeigen
Weniger anzeigen

Bildschirmfoto 01 10 2024 - 16h 12min 59s@2x

@manchenkoff
Copy link
Owner

manchenkoff commented Oct 1, 2024

@ahoiroman version 0.4.16 is on the way, please try again. If the issue persists, provide new logs again for debugging.

P.S. clear the cookies just in case

@ahoiroman
Copy link
Author

Unfortunately it's still the same problem. I cleared cookies, disabled anything that could interfere the connection (VPN, AdGuard, ...) and installed a fresh browser.

I validated the fact that I got the most recent version:

@iconify-json/heroicons 1.2.0     @nuxtjs/i18n 8.5.5                
@iconify-json/simple-icons 1.2.5  @vueuse/nuxt 11.1.0               
@nuxt/content 2.13.2              nuxt 3.13.2                       
@nuxt/fonts 0.9.2                 nuxt-auth-sanctum 0.4.16          
@nuxt/image 1.8.0                 nuxt-og-image 3.0.4               
@nuxt/ui-pro 1.4.3                valibot 0.42.1                    

devDependencies:
@nuxt/eslint 0.5.7
@nuxthq/studio 2.1.1
eslint 9.11.1
vue-tsc 2.1.6

This is the browser-console-output after clicking "login":

Bildschirmfoto 01 10 2024 - 16h 47min 52s@2x

These are the headers that laravel/telescope reports:

{
  "content-length": "50",
  "sec-fetch-mode": "cors",
  "x-real-ip": "127.0.0.1",
  "x-nginx-proxy": "true",
  "x-forwarded-proto": "http",
  "x-forwarded-port": "61766",
  "x-forwarded-for": "127.0.0.1",
  "x-client-verify": "SUCCESS",
  "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36",
  "referer": "http://web.example.test/login",
  "origin": "http://web.example.test",
  "dnt": "1",
  "cookie": "i18n_redirected=en; XSRF-TOKEN=eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbHVlIjoiUmEwV1Y2MDVEejhBcmNnek5udlVGM3YrYTlsSDk5cnNMSHllVWcvSlJ4ZWZQdW5UU3Zla21VbkFaUjViMXpuU2xveUdGS1pJaDRaTkpyTFd5eE5Eb294NVc3TEZuVVZyRXJNaWtmLzFvMUxMNmpSSXZQRnlLTnVGOUozSElXOEIiLCJtYWMiOiIxYjU1M2IyYjM4Mzk5MzE1Njg4ZGRjMDU4Yzk3MWEyNWNlMTRkODgwZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6Ik5UVnhFaFZwSW1sdUoxZ2FuZlZPdHc9PSIsInZhbHVlIjoiM2ZqeVRXbUtoRDZtaVpudHd6MjkzcmV1T3pHc2N6ZmRTZVRZWkFiNGphZVNTaW1yZnlvYjFCQUYvYzVUTEZqTGlpZGlCU2gvTEc2M2JwR2Q0b1pqRm1CK1JZRDgzWi9TWjFDODBzYnRLUGhJNEF4azExR2drbVRiSmNGcllGWEUiLCJtYWMiOiI3ZjI3YjkyMjA1OTZhODc3ZmFiYmZiOWUzZTRkYjI3Mzk0ZGY3OWFhODY0MGQ0NzI5NDU1MDQ2MGJjOGZjOGFiIiwidGFnIjoiIn0%3D",
  "content-type": "application/json",
  "accept-language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
  "accept-encoding": "gzip, deflate",
  "accept": "application/json",
  "connection": "keep-alive",
  "host": "api.example.test"
}

And those are all logs:

  1. Log
web-socket.js?v=27d4103b:5 [Content] WS connect to ws://localhost:4000/ws
web-socket.js?v=27d4103b:5 [Content] WS connected!
devtools.client.js?v=27d4103b:52 ✨ Nuxt DevTools  Press Shift + Option + D to open DevTools 
runtime-core.esm-bundler.js?v=27d4103b:6972 <Suspense> is an experimental feature and its API will likely change.
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:debug [handleRequestHeaders] headers modified ['Accept']
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug CSRF cookie has been initialized
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug Added X-XSRF-TOKEN header to pass to the API
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug [handleRequestCookies] headers modified (2) ['Accept', 'X-XSRF-TOKEN']
app.config.ts:64 nuxt-auth-sanctum:csr:info Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbH…wZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0='}
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:trace Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbH…wZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0='}
UserAuthForm.vue:57 
        
        
       POST http://web.example.test/backend/login 419 (unknown status)
(anonym) @ index.mjs?v=27d4103b:21
$fetchRaw2 @ ofetch.4747642d.mjs?v=27d4103b:249
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=27d4103b:304
login @ useSanctumAuth.js?v=27d4103b:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=27d4103b:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=27d4103b:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
(anonym) @ runtime-core.esm-bundler.js?v=27d4103b:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=27d4103b:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
invoker @ runtime-dom.esm-bundler.js?v=27d4103b:713
submit @ injected.js:42
ss @ injected.js:42
MF @ injected.js:42
await in MF
yb @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:40
r @ injected.js:40
28 weitere Frames anzeigen
Weniger anzeigen
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:trace Response headers for "http://web.example.test/backend/login" Headers {}
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:warn CSRF token mismatch, check your API configuration
log @ browser.mjs?v=27d4103b:44
_log @ core.mjs?v=27d4103b:381
resolveLog @ core.mjs?v=27d4103b:349
_logFn @ core.mjs?v=27d4103b:377
(anonym) @ core.mjs?v=27d4103b:306
onResponseError @ httpFactory.js?v=27d4103b:72
callHooks @ ofetch.4747642d.mjs?v=27d4103b:134
$fetchRaw2 @ ofetch.4747642d.mjs?v=27d4103b:294
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=27d4103b:304
login @ useSanctumAuth.js?v=27d4103b:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=27d4103b:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=27d4103b:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
(anonym) @ runtime-core.esm-bundler.js?v=27d4103b:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=27d4103b:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
invoker @ runtime-dom.esm-bundler.js?v=27d4103b:713
submit @ injected.js:42
ss @ injected.js:42
MF @ injected.js:42
await in MF
yb @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:40
r @ injected.js:40
34 weitere Frames anzeigen
Weniger anzeigen
  1. Log
web-socket.js?v=27d4103b:5 [Content] WS connect to ws://localhost:4000/ws
web-socket.js?v=27d4103b:5 [Content] WS connected!
devtools.client.js?v=27d4103b:52 ✨ Nuxt DevTools  Press Shift + Option + D to open DevTools 
runtime-core.esm-bundler.js?v=27d4103b:6972 <Suspense> is an experimental feature and its API will likely change.
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:debug [handleRequestHeaders] headers modified ['Accept']
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug CSRF cookie has been initialized
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug Added X-XSRF-TOKEN header to pass to the API
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug [handleRequestCookies] headers modified (2) ['Accept', 'X-XSRF-TOKEN']
app.config.ts:64 nuxt-auth-sanctum:csr:info Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbH…wZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0='}
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:trace Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbH…wZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0='}
UserAuthForm.vue:57 
        
        
       POST http://web.example.test/backend/login 419 (unknown status)
(anonym) @ index.mjs?v=27d4103b:21
$fetchRaw2 @ ofetch.4747642d.mjs?v=27d4103b:249
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=27d4103b:304
login @ useSanctumAuth.js?v=27d4103b:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=27d4103b:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=27d4103b:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
(anonym) @ runtime-core.esm-bundler.js?v=27d4103b:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=27d4103b:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
invoker @ runtime-dom.esm-bundler.js?v=27d4103b:713
submit @ injected.js:42
ss @ injected.js:42
MF @ injected.js:42
await in MF
yb @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:40
r @ injected.js:40
28 weitere Frames anzeigen
Weniger anzeigen
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:trace Response headers for "http://web.example.test/backend/login" Headers {}
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:warn CSRF token mismatch, check your API configuration
log @ browser.mjs?v=27d4103b:44
_log @ core.mjs?v=27d4103b:381
resolveLog @ core.mjs?v=27d4103b:349
_logFn @ core.mjs?v=27d4103b:377
(anonym) @ core.mjs?v=27d4103b:306
onResponseError @ httpFactory.js?v=27d4103b:72
callHooks @ ofetch.4747642d.mjs?v=27d4103b:134
$fetchRaw2 @ ofetch.4747642d.mjs?v=27d4103b:294
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=27d4103b:304
login @ useSanctumAuth.js?v=27d4103b:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=27d4103b:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=27d4103b:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
(anonym) @ runtime-core.esm-bundler.js?v=27d4103b:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=27d4103b:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
invoker @ runtime-dom.esm-bundler.js?v=27d4103b:713
submit @ injected.js:42
ss @ injected.js:42
MF @ injected.js:42
await in MF
yb @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:40
r @ injected.js:40
34 weitere Frames anzeigen
Weniger anzeigen
  1. Log
web-socket.js?v=27d4103b:5 [Content] WS connect to ws://localhost:4000/ws
web-socket.js?v=27d4103b:5 [Content] WS connected!
devtools.client.js?v=27d4103b:52 ✨ Nuxt DevTools  Press Shift + Option + D to open DevTools 
runtime-core.esm-bundler.js?v=27d4103b:6972 <Suspense> is an experimental feature and its API will likely change.
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:debug [handleRequestHeaders] headers modified ['Accept']
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug CSRF cookie has been initialized
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug Added X-XSRF-TOKEN header to pass to the API
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug [handleRequestCookies] headers modified (2) ['Accept', 'X-XSRF-TOKEN']
app.config.ts:64 nuxt-auth-sanctum:csr:info Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbH…wZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0='}
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:trace Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbH…wZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0='}
UserAuthForm.vue:57 
        
        
       POST http://web.example.test/backend/login 419 (unknown status)
(anonym) @ index.mjs?v=27d4103b:21
$fetchRaw2 @ ofetch.4747642d.mjs?v=27d4103b:249
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=27d4103b:304
login @ useSanctumAuth.js?v=27d4103b:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=27d4103b:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=27d4103b:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
(anonym) @ runtime-core.esm-bundler.js?v=27d4103b:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=27d4103b:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
invoker @ runtime-dom.esm-bundler.js?v=27d4103b:713
submit @ injected.js:42
ss @ injected.js:42
MF @ injected.js:42
await in MF
yb @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:40
r @ injected.js:40
28 weitere Frames anzeigen
Weniger anzeigen
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:trace Response headers for "http://web.example.test/backend/login" Headers {}
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:warn CSRF token mismatch, check your API configuration
log @ browser.mjs?v=27d4103b:44
_log @ core.mjs?v=27d4103b:381
resolveLog @ core.mjs?v=27d4103b:349
_logFn @ core.mjs?v=27d4103b:377
(anonym) @ core.mjs?v=27d4103b:306
onResponseError @ httpFactory.js?v=27d4103b:72
callHooks @ ofetch.4747642d.mjs?v=27d4103b:134
$fetchRaw2 @ ofetch.4747642d.mjs?v=27d4103b:294
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=27d4103b:304
login @ useSanctumAuth.js?v=27d4103b:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=27d4103b:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=27d4103b:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
(anonym) @ runtime-core.esm-bundler.js?v=27d4103b:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=27d4103b:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
invoker @ runtime-dom.esm-bundler.js?v=27d4103b:713
submit @ injected.js:42
ss @ injected.js:42
MF @ injected.js:42
await in MF
yb @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:40
r @ injected.js:40
34 weitere Frames anzeigen
Weniger anzeigen
  1. Log
web-socket.js?v=27d4103b:5 [Content] WS connect to ws://localhost:4000/ws
web-socket.js?v=27d4103b:5 [Content] WS connected!
devtools.client.js?v=27d4103b:52 ✨ Nuxt DevTools  Press Shift + Option + D to open DevTools 
runtime-core.esm-bundler.js?v=27d4103b:6972 <Suspense> is an experimental feature and its API will likely change.
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:debug [handleRequestHeaders] headers modified ['Accept']
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug CSRF cookie has been initialized
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug Added X-XSRF-TOKEN header to pass to the API
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug [handleRequestCookies] headers modified (2) ['Accept', 'X-XSRF-TOKEN']
app.config.ts:64 nuxt-auth-sanctum:csr:info Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbH…wZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0='}
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:trace Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbH…wZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0='}
UserAuthForm.vue:57 
        
        
       POST http://web.example.test/backend/login 419 (unknown status)
(anonym) @ index.mjs?v=27d4103b:21
$fetchRaw2 @ ofetch.4747642d.mjs?v=27d4103b:249
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=27d4103b:304
login @ useSanctumAuth.js?v=27d4103b:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=27d4103b:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=27d4103b:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
(anonym) @ runtime-core.esm-bundler.js?v=27d4103b:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=27d4103b:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
invoker @ runtime-dom.esm-bundler.js?v=27d4103b:713
submit @ injected.js:42
ss @ injected.js:42
MF @ injected.js:42
await in MF
yb @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:40
r @ injected.js:40
28 weitere Frames anzeigen
Weniger anzeigen
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:trace Response headers for "http://web.example.test/backend/login" Headers {}
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:warn CSRF token mismatch, check your API configuration
log @ browser.mjs?v=27d4103b:44
_log @ core.mjs?v=27d4103b:381
resolveLog @ core.mjs?v=27d4103b:349
_logFn @ core.mjs?v=27d4103b:377
(anonym) @ core.mjs?v=27d4103b:306
onResponseError @ httpFactory.js?v=27d4103b:72
callHooks @ ofetch.4747642d.mjs?v=27d4103b:134
$fetchRaw2 @ ofetch.4747642d.mjs?v=27d4103b:294
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=27d4103b:304
login @ useSanctumAuth.js?v=27d4103b:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=27d4103b:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=27d4103b:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
(anonym) @ runtime-core.esm-bundler.js?v=27d4103b:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=27d4103b:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
invoker @ runtime-dom.esm-bundler.js?v=27d4103b:713
submit @ injected.js:42
ss @ injected.js:42
MF @ injected.js:42
await in MF
yb @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:40
r @ injected.js:40
34 weitere Frames anzeigen
Weniger anzeigen
  1. Log
web-socket.js?v=27d4103b:5 [Content] WS connect to ws://localhost:4000/ws
web-socket.js?v=27d4103b:5 [Content] WS connected!
devtools.client.js?v=27d4103b:52 ✨ Nuxt DevTools  Press Shift + Option + D to open DevTools 
runtime-core.esm-bundler.js?v=27d4103b:6972 <Suspense> is an experimental feature and its API will likely change.
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:debug [handleRequestHeaders] headers modified ['Accept']
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug CSRF cookie has been initialized
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug Added X-XSRF-TOKEN header to pass to the API
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug [handleRequestCookies] headers modified (2) ['Accept', 'X-XSRF-TOKEN']
app.config.ts:64 nuxt-auth-sanctum:csr:info Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbH…wZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0='}
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:trace Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbH…wZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0='}
UserAuthForm.vue:57 
        
        
       POST http://web.example.test/backend/login 419 (unknown status)
(anonym) @ index.mjs?v=27d4103b:21
$fetchRaw2 @ ofetch.4747642d.mjs?v=27d4103b:249
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=27d4103b:304
login @ useSanctumAuth.js?v=27d4103b:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=27d4103b:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=27d4103b:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
(anonym) @ runtime-core.esm-bundler.js?v=27d4103b:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=27d4103b:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
invoker @ runtime-dom.esm-bundler.js?v=27d4103b:713
submit @ injected.js:42
ss @ injected.js:42
MF @ injected.js:42
await in MF
yb @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:40
r @ injected.js:40
28 weitere Frames anzeigen
Weniger anzeigen
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:trace Response headers for "http://web.example.test/backend/login" Headers {}
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:warn CSRF token mismatch, check your API configuration
log @ browser.mjs?v=27d4103b:44
_log @ core.mjs?v=27d4103b:381
resolveLog @ core.mjs?v=27d4103b:349
_logFn @ core.mjs?v=27d4103b:377
(anonym) @ core.mjs?v=27d4103b:306
onResponseError @ httpFactory.js?v=27d4103b:72
callHooks @ ofetch.4747642d.mjs?v=27d4103b:134
$fetchRaw2 @ ofetch.4747642d.mjs?v=27d4103b:294
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=27d4103b:304
login @ useSanctumAuth.js?v=27d4103b:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=27d4103b:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=27d4103b:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
(anonym) @ runtime-core.esm-bundler.js?v=27d4103b:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=27d4103b:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
invoker @ runtime-dom.esm-bundler.js?v=27d4103b:713
submit @ injected.js:42
ss @ injected.js:42
MF @ injected.js:42
await in MF
yb @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:40
r @ injected.js:40
34 weitere Frames anzeigen
Weniger anzeigen
  1. Log
web-socket.js?v=27d4103b:5 [Content] WS connect to ws://localhost:4000/ws
web-socket.js?v=27d4103b:5 [Content] WS connected!
devtools.client.js?v=27d4103b:52 ✨ Nuxt DevTools  Press Shift + Option + D to open DevTools 
runtime-core.esm-bundler.js?v=27d4103b:6972 <Suspense> is an experimental feature and its API will likely change.
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:debug [handleRequestHeaders] headers modified ['Accept']
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug CSRF cookie has been initialized
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug Added X-XSRF-TOKEN header to pass to the API
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug [handleRequestCookies] headers modified (2) ['Accept', 'X-XSRF-TOKEN']
app.config.ts:64 nuxt-auth-sanctum:csr:info Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbH…wZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0='}
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:trace Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbH…wZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0='}Accept: "application/json"X-XSRF-TOKEN: "eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbHVlIjoiUmEwV1Y2MDVEejhBcmNnek5udlVGM3YrYTlsSDk5cnNMSHllVWcvSlJ4ZWZQdW5UU3Zla21VbkFaUjViMXpuU2xveUdGS1pJaDRaTkpyTFd5eE5Eb294NVc3TEZuVVZyRXJNaWtmLzFvMUxMNmpSSXZQRnlLTnVGOUozSElXOEIiLCJtYWMiOiIxYjU1M2IyYjM4Mzk5MzE1Njg4ZGRjMDU4Yzk3MWEyNWNlMTRkODgwZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0="[[Prototype]]: Headers
UserAuthForm.vue:57 
        
        
       POST http://web.example.test/backend/login 419 (unknown status)
(anonym) @ index.mjs?v=27d4103b:21
$fetchRaw2 @ ofetch.4747642d.mjs?v=27d4103b:249
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=27d4103b:304
login @ useSanctumAuth.js?v=27d4103b:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=27d4103b:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=27d4103b:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
(anonym) @ runtime-core.esm-bundler.js?v=27d4103b:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=27d4103b:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
invoker @ runtime-dom.esm-bundler.js?v=27d4103b:713
submit @ injected.js:42
ss @ injected.js:42
MF @ injected.js:42
await in MF
yb @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:40
r @ injected.js:40
28 weitere Frames anzeigen
Weniger anzeigen
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:trace Response headers for "http://web.example.test/backend/login" Headers {}
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:warn CSRF token mismatch, check your API configuration
log @ browser.mjs?v=27d4103b:44
_log @ core.mjs?v=27d4103b:381
resolveLog @ core.mjs?v=27d4103b:349
_logFn @ core.mjs?v=27d4103b:377
(anonym) @ core.mjs?v=27d4103b:306
onResponseError @ httpFactory.js?v=27d4103b:72
callHooks @ ofetch.4747642d.mjs?v=27d4103b:134
$fetchRaw2 @ ofetch.4747642d.mjs?v=27d4103b:294
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=27d4103b:304
login @ useSanctumAuth.js?v=27d4103b:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=27d4103b:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=27d4103b:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
(anonym) @ runtime-core.esm-bundler.js?v=27d4103b:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=27d4103b:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
invoker @ runtime-dom.esm-bundler.js?v=27d4103b:713
submit @ injected.js:42
ss @ injected.js:42
MF @ injected.js:42
await in MF
yb @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:40
r @ injected.js:40
34 weitere Frames anzeigen
Weniger anzeigen
  1. Log
web-socket.js?v=27d4103b:5 [Content] WS connect to ws://localhost:4000/ws
web-socket.js?v=27d4103b:5 [Content] WS connected!
devtools.client.js?v=27d4103b:52 ✨ Nuxt DevTools  Press Shift + Option + D to open DevTools 
runtime-core.esm-bundler.js?v=27d4103b:6972 <Suspense> is an experimental feature and its API will likely change.
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:debug [handleRequestHeaders] headers modified ['Accept']
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug CSRF cookie has been initialized
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug Added X-XSRF-TOKEN header to pass to the API
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:debug [handleRequestCookies] headers modified (2) ['Accept', 'X-XSRF-TOKEN']
app.config.ts:64 nuxt-auth-sanctum:csr:info Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbH…wZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0='}
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:trace Request headers for "/login" Headers {Accept: 'application/json', X-XSRF-TOKEN: 'eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbH…wZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0='}Accept: "application/json"X-XSRF-TOKEN: "eyJpdiI6Im1vTzhETWcyZXNjc3pydDRvRWlsUFE9PSIsInZhbHVlIjoiUmEwV1Y2MDVEejhBcmNnek5udlVGM3YrYTlsSDk5cnNMSHllVWcvSlJ4ZWZQdW5UU3Zla21VbkFaUjViMXpuU2xveUdGS1pJaDRaTkpyTFd5eE5Eb294NVc3TEZuVVZyRXJNaWtmLzFvMUxMNmpSSXZQRnlLTnVGOUozSElXOEIiLCJtYWMiOiIxYjU1M2IyYjM4Mzk5MzE1Njg4ZGRjMDU4Yzk3MWEyNWNlMTRkODgwZWQ0NmFjZTBiYjY1MDkxMWM5Zjc4ZTc4IiwidGFnIjoiIn0="[[Prototype]]: Headers
UserAuthForm.vue:57 
        
        
       POST http://web.example.test/backend/login 419 (unknown status)
(anonym) @ index.mjs?v=27d4103b:21
$fetchRaw2 @ ofetch.4747642d.mjs?v=27d4103b:249
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=27d4103b:304
login @ useSanctumAuth.js?v=27d4103b:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=27d4103b:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=27d4103b:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
(anonym) @ runtime-core.esm-bundler.js?v=27d4103b:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=27d4103b:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
invoker @ runtime-dom.esm-bundler.js?v=27d4103b:713
submit @ injected.js:42
ss @ injected.js:42
MF @ injected.js:42
await in MF
yb @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:40
r @ injected.js:40
28 weitere Frames anzeigen
Weniger anzeigen
browser.mjs?v=27d4103b:44 nuxt-auth-sanctum:csr:trace Response headers for "http://web.example.test/backend/login" Headers {}
UserAuthForm.vue:57 nuxt-auth-sanctum:csr:warn CSRF token mismatch, check your API configuration
log @ browser.mjs?v=27d4103b:44
_log @ core.mjs?v=27d4103b:381
resolveLog @ core.mjs?v=27d4103b:349
_logFn @ core.mjs?v=27d4103b:377
(anonym) @ core.mjs?v=27d4103b:306
onResponseError @ httpFactory.js?v=27d4103b:72
callHooks @ ofetch.4747642d.mjs?v=27d4103b:134
$fetchRaw2 @ ofetch.4747642d.mjs?v=27d4103b:294
await in $fetchRaw2
$fetch2 @ ofetch.4747642d.mjs?v=27d4103b:304
login @ useSanctumAuth.js?v=27d4103b:46
useAsyncData.immediate @ UserAuthForm.vue:57
Promise.then.result @ asyncData.js?v=27d4103b:75
asyncData.refresh.asyncData.execute @ asyncData.js?v=27d4103b:72
onSubmit @ UserAuthForm.vue:94
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
$props.fields.length._createBlock.onSubmit._cache.<computed>._cache.<computed> @ AuthForm.vue:271
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
emit @ runtime-core.esm-bundler.js?v=27d4103b:6347
(anonym) @ runtime-core.esm-bundler.js?v=27d4103b:8053
onSubmit @ Form.vue:109
await in onSubmit
(anonym) @ Form.vue:230
cache.<computed>.cache.<computed> @ runtime-dom.esm-bundler.js?v=27d4103b:1670
callWithErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:197
callWithAsyncErrorHandling @ runtime-core.esm-bundler.js?v=27d4103b:204
invoker @ runtime-dom.esm-bundler.js?v=27d4103b:713
submit @ injected.js:42
ss @ injected.js:42
MF @ injected.js:42
await in MF
yb @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:42
(anonym) @ injected.js:40
r @ injected.js:40
34 weitere Frames anzeigen
Weniger anzeigen

@ahoiroman
Copy link
Author

Before you dig deeper, let me validate cors etc using postman. While debugging the initial problem, I was adapting quite a bit.

@ahoiroman
Copy link
Author

Hm. Nope. No matter what I do: Without the X-XSRF-TOKEN, the request will always fail at https://github.com/laravel/framework/blob/11.x/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php#L154 .

@manchenkoff
Copy link
Owner

@ahoiroman thanks, got it, I will try to look into that. Does it happen with CSR mode as well?

@ahoiroman
Copy link
Author

Yes, it does hapen with ssr: false, too.

@manchenkoff
Copy link
Owner

Yes, it does hapen with ssr: false, too.

You can try to downgrade to stable 0.4.12 in the meantime, I will keep you posted

@manchenkoff
Copy link
Owner

I published a new 0.4.17 version with more detailed logging and headers validation, however, all my projects work fine even with 0.4.16 in production.

Please let me know if 0.4.12 works for you and 0.4.17 doesn't. New logs would help as well!

@ahoiroman
Copy link
Author

ahoiroman commented Oct 2, 2024

I created reproducers:

These are fresh projects to make sure that no custom logic causes the problems.

@ahoiroman
Copy link
Author

Bildschirmfoto.02.10.2024.-.10h.38min.49s-converted.mp4

Video in full quality is available here: https://share.cleanshot.com/Y4hrdmpm

@manchenkoff
Copy link
Owner

Hey @ahoiroman but in the backend project you created I couldn't find Breeze or Sanctum installed

@manchenkoff
Copy link
Owner

@ahoiroman I have just checked the video and everything looks valid (token, headers), to be honest, what is your SESSION_DOMAIN on the Laravel side there?

@ahoiroman
Copy link
Author

Sorry, I did not push the latest change to the backend project because phpStorm detected an issue and did not push the commit.

The readme contains a sample .env. In my case, it is:

SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=.sanctum-reproducer.test

@manchenkoff
Copy link
Owner

manchenkoff commented Oct 2, 2024

The readme contains a sample .env. In my case, it is:

Could you also add SANCTUM_STATEFUL_DOMAINS=web.sanctum-reproducer.test? or the domain that is present in Origin headers on Laravel side.

I will try to set up your repros later today

@ahoiroman
Copy link
Author

I added these values to .env.example. As stated in README.md, the value for SANCTUM_STATEFUL_DOMAINS was already set to SANCTUM_STATEFUL_DOMAINS="web.sanctum-reproducer.test, .sanctum-reproducer.test".

Best, Roman

@manchenkoff
Copy link
Owner

@ahoiroman
The potential reason for the issue should be fixed now in 0.4.18, please try upgrading and let me know if it helps

@ahoiroman
Copy link
Author

🚀 That fixes the problem!

@ahoiroman
Copy link
Author

And of course: Thank you (again) for your great work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants