website refactor
This commit is contained in:
500
website_logs.txt
Normal file
500
website_logs.txt
Normal file
@@ -0,0 +1,500 @@
|
||||
ℹ️ [WEBSITE] INFO: [RouteGuard] Auth page detected
|
||||
Timestamp: 2026-01-17T15:51:02.368Z
|
||||
Source: website
|
||||
[SESSION] Using server component cookies, length: 0
|
||||
[SESSION] Cookie string:
|
||||
[SESSION] No cookies found, returning null
|
||||
ℹ️ [WEBSITE] INFO: [RouteGuard] No session, allowing access to auth page
|
||||
Timestamp: 2026-01-17T15:51:02.377Z
|
||||
Source: website
|
||||
GET /auth/login?returnTo=%2Fdashboard 200 in 90ms
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] ========== REQUEST START ==========
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.491Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Request details
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.491Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
pathname: [32m'/'[39m,
|
||||
method: [32m'GET'[39m,
|
||||
url: [32m'http://localhost:3000/'[39m,
|
||||
cookieHeaderLength: [33m0[39m,
|
||||
cookiePreview: [32m''[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Fetching session...
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.491Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
[SESSION] NextRequest cookie header length: 0
|
||||
[SESSION] NextRequest cookie header:
|
||||
[SESSION] Using provided cookie header, length: 0
|
||||
[SESSION] Cookie string:
|
||||
[SESSION] No cookies found, returning null
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Session fetched
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.491Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
hasSession: [33mfalse[39m,
|
||||
userId: [90mundefined[39m,
|
||||
role: [90mundefined[39m,
|
||||
sessionData: [32m'null'[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Auth session converted
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.491Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ authSession: [32m'null'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] isPublic check
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.491Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] Path is public (exact match)
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] requiresRole check
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] Path requires no specific role
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Route classification
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/'[39m, isPublic: [33mtrue[39m, requiresRole: [1mnull[22m }
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Calling handleAuthFlow...
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
ℹ️ [WEBSITE] INFO: [handleAuthFlow] Called
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ hasSession: [33mfalse[39m, sessionRole: [90mundefined[39m, requestedPath: [32m'/'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] isPublic check
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] Path is public (exact match)
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] requiresRole check
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] Path requires no specific role
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [AuthFlowRouter] getAction called
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
requestedPath: [32m'/'[39m,
|
||||
isPublic: [33mtrue[39m,
|
||||
hasSession: [33mfalse[39m,
|
||||
requiredRoles: [1mnull[22m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [AuthFlowRouter] Public route, showing page
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
ℹ️ [WEBSITE] INFO: [handleAuthFlow] Action determined
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ actionType: [32m'SHOW_PAGE'[39m, action: [32m'{\n "type": "SHOW_PAGE"\n}'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [handleAuthFlow] Returning SHOW_PAGE
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] handleAuthFlow result
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
result: [32m'{\n "shouldRedirect": false,\n "shouldShowPage": true\n}'[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Decision summary
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
pathname: [32m'/'[39m,
|
||||
hasSession: [33mfalse[39m,
|
||||
role: [90mundefined[39m,
|
||||
shouldRedirect: [33mfalse[39m,
|
||||
redirectUrl: [90mundefined[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] ALLOWING ACCESS
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ pathname: [32m'/'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] ========== REQUEST END (ALLOW) ==========
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.492Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
ℹ️ [WEBSITE] INFO: Global error handler skipped (server-side)
|
||||
Timestamp: 2026-01-17T15:51:07.517Z
|
||||
Source: website
|
||||
🐛 [WEBSITE] DEBUG: API Request: GET http://api:3000/auth/session
|
||||
Timestamp: 2026-01-17T15:51:07.519Z
|
||||
Source: website
|
||||
Context:
|
||||
{
|
||||
requestId: [32m'req_1768665067519_1'[39m,
|
||||
timestamp: [32m'2026-01-17T15:51:07.519Z'[39m,
|
||||
headers: { [32m'Content-Type'[39m: [32m'application/json'[39m },
|
||||
body: [90mundefined[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: API Response: GET http://api:3000/auth/session
|
||||
Timestamp: 2026-01-17T15:51:07.559Z
|
||||
Source: website
|
||||
Context:
|
||||
{
|
||||
requestId: [32m'req_1768665067519_1'[39m,
|
||||
duration: [32m'39.00ms'[39m,
|
||||
status: [32m'200 OK'[39m,
|
||||
body: [1mnull[22m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] ========== REQUEST START ==========
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Request details
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
pathname: [32m'/dashboard'[39m,
|
||||
method: [32m'GET'[39m,
|
||||
url: [32m'http://localhost:3000/dashboard'[39m,
|
||||
cookieHeaderLength: [33m0[39m,
|
||||
cookiePreview: [32m''[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Fetching session...
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
[SESSION] NextRequest cookie header length: 0
|
||||
[SESSION] NextRequest cookie header:
|
||||
[SESSION] Using provided cookie header, length: 0
|
||||
[SESSION] Cookie string:
|
||||
[SESSION] No cookies found, returning null
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Session fetched
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
hasSession: [33mfalse[39m,
|
||||
userId: [90mundefined[39m,
|
||||
role: [90mundefined[39m,
|
||||
sessionData: [32m'null'[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Auth session converted
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ authSession: [32m'null'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] isPublic check
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/dashboard'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] Path is NOT public
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/dashboard'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] requiresRole check
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/dashboard'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] Path requires no specific role
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/dashboard'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Route classification
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/dashboard'[39m, isPublic: [33mfalse[39m, requiresRole: [1mnull[22m }
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Calling handleAuthFlow...
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
ℹ️ [WEBSITE] INFO: [handleAuthFlow] Called
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
hasSession: [33mfalse[39m,
|
||||
sessionRole: [90mundefined[39m,
|
||||
requestedPath: [32m'/dashboard'[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] isPublic check
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/dashboard'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] Path is NOT public
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/dashboard'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] requiresRole check
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/dashboard'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] Path requires no specific role
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/dashboard'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [AuthFlowRouter] getAction called
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
requestedPath: [32m'/dashboard'[39m,
|
||||
isPublic: [33mfalse[39m,
|
||||
hasSession: [33mfalse[39m,
|
||||
requiredRoles: [1mnull[22m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [AuthFlowRouter] No session, redirecting to login
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
ℹ️ [WEBSITE] INFO: [handleAuthFlow] Action determined
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
actionType: [32m'REDIRECT_TO_LOGIN'[39m,
|
||||
action: [32m'{\n "type": "REDIRECT_TO_LOGIN",\n "returnTo": "/dashboard"\n}'[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [AuthFlowRouter] getAction called
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
requestedPath: [32m'/dashboard'[39m,
|
||||
isPublic: [33mfalse[39m,
|
||||
hasSession: [33mfalse[39m,
|
||||
requiredRoles: [1mnull[22m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [AuthFlowRouter] No session, redirecting to login
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
ℹ️ [WEBSITE] INFO: [handleAuthFlow] Returning REDIRECT_TO_LOGIN
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ loginUrl: [32m'/auth/login?returnTo=%2Fdashboard'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] handleAuthFlow result
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
result: [32m'{\n'[39m +
|
||||
[32m' "shouldRedirect": true,\n'[39m +
|
||||
[32m' "redirectUrl": "/auth/login?returnTo=%2Fdashboard"\n'[39m +
|
||||
[32m'}'[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Decision summary
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
pathname: [32m'/dashboard'[39m,
|
||||
hasSession: [33mfalse[39m,
|
||||
role: [90mundefined[39m,
|
||||
shouldRedirect: [33mtrue[39m,
|
||||
redirectUrl: [32m'/auth/login?returnTo=%2Fdashboard'[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] REDIRECTING
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.596Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
from: [32m'/dashboard'[39m,
|
||||
to: [32m'http://localhost:3000/auth/login?returnTo=%2Fdashboard'[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] ========== REQUEST END (REDIRECT) ==========
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.597Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
GET / 307 in 106ms
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] ========== REQUEST START ==========
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Request details
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
pathname: [32m'/auth/login'[39m,
|
||||
method: [32m'GET'[39m,
|
||||
url: [32m'http://localhost:3000/auth/login?returnTo=%2Fdashboard'[39m,
|
||||
cookieHeaderLength: [33m0[39m,
|
||||
cookiePreview: [32m''[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Fetching session...
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
[SESSION] NextRequest cookie header length: 0
|
||||
[SESSION] NextRequest cookie header:
|
||||
[SESSION] Using provided cookie header, length: 0
|
||||
[SESSION] Cookie string:
|
||||
[SESSION] No cookies found, returning null
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Session fetched
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
hasSession: [33mfalse[39m,
|
||||
userId: [90mundefined[39m,
|
||||
role: [90mundefined[39m,
|
||||
sessionData: [32m'null'[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Auth session converted
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ authSession: [32m'null'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] isPublic check
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/auth/login'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] Path is public (exact match)
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/auth/login'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] requiresRole check
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/auth/login'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] Path requires no specific role
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/auth/login'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Route classification
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/auth/login'[39m, isPublic: [33mtrue[39m, requiresRole: [1mnull[22m }
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Calling handleAuthFlow...
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
ℹ️ [WEBSITE] INFO: [handleAuthFlow] Called
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
hasSession: [33mfalse[39m,
|
||||
sessionRole: [90mundefined[39m,
|
||||
requestedPath: [32m'/auth/login'[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] isPublic check
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/auth/login'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] Path is public (exact match)
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/auth/login'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] requiresRole check
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.608Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/auth/login'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteConfig] Path requires no specific role
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.609Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ path: [32m'/auth/login'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [AuthFlowRouter] getAction called
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.609Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
requestedPath: [32m'/auth/login'[39m,
|
||||
isPublic: [33mtrue[39m,
|
||||
hasSession: [33mfalse[39m,
|
||||
requiredRoles: [1mnull[22m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [AuthFlowRouter] Public route, showing page
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.609Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
ℹ️ [WEBSITE] INFO: [handleAuthFlow] Action determined
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.609Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ actionType: [32m'SHOW_PAGE'[39m, action: [32m'{\n "type": "SHOW_PAGE"\n}'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [handleAuthFlow] Returning SHOW_PAGE
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.609Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] handleAuthFlow result
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.609Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
result: [32m'{\n "shouldRedirect": false,\n "shouldShowPage": true\n}'[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] Decision summary
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.609Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{
|
||||
pathname: [32m'/auth/login'[39m,
|
||||
hasSession: [33mfalse[39m,
|
||||
role: [90mundefined[39m,
|
||||
shouldRedirect: [33mfalse[39m,
|
||||
redirectUrl: [90mundefined[39m
|
||||
}
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] ALLOWING ACCESS
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.609Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
%cContext: color: #666; font-weight: bold;
|
||||
{ pathname: [32m'/auth/login'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [MIDDLEWARE] ========== REQUEST END (ALLOW) ==========
|
||||
%cTimestamp: color: #666; font-weight: bold; 2026-01-17T15:51:07.609Z
|
||||
%cSource: color: #666; font-weight: bold; website
|
||||
ℹ️ [WEBSITE] INFO: Global error handler skipped (server-side)
|
||||
Timestamp: 2026-01-17T15:51:07.652Z
|
||||
Source: website
|
||||
ℹ️ [WEBSITE] INFO: [RouteGuard] enforce called
|
||||
Timestamp: 2026-01-17T15:51:07.668Z
|
||||
Source: website
|
||||
Context:
|
||||
{ pathname: [32m'/auth/login'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteGuard] logicalPathname
|
||||
Timestamp: 2026-01-17T15:51:07.668Z
|
||||
Source: website
|
||||
Context:
|
||||
{ logicalPathname: [32m'/auth/login'[39m }
|
||||
ℹ️ [WEBSITE] INFO: [RouteGuard] Auth page detected
|
||||
Timestamp: 2026-01-17T15:51:07.669Z
|
||||
Source: website
|
||||
[SESSION] Using server component cookies, length: 0
|
||||
[SESSION] Cookie string:
|
||||
[SESSION] No cookies found, returning null
|
||||
ℹ️ [WEBSITE] INFO: [RouteGuard] No session, allowing access to auth page
|
||||
Timestamp: 2026-01-17T15:51:07.737Z
|
||||
Source: website
|
||||
GET /auth/login?returnTo=%2Fdashboard 200 in 203ms
|
||||
Reference in New Issue
Block a user