fix: use rows array returned by query(), not result.rows
db-postgres.ts query() returns T[] directly, not a QueryResult object. result.rows was undefined, causing the session lookup to always return null and redirect to login even with a valid session token. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -29,13 +29,6 @@ const SESSION_COOKIE_NAMES = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
export async function GET(request: NextRequest) {
|
export async function GET(request: NextRequest) {
|
||||||
// Debug: when called with ?debug=1, reveal which cookies were received
|
|
||||||
if (request.nextUrl.searchParams.get('debug') === '1') {
|
|
||||||
const cookieHeader = request.headers.get('cookie') ?? '(none)';
|
|
||||||
const allNames = [...request.cookies.getAll()].map(c => c.name);
|
|
||||||
return NextResponse.json({ cookieHeader: cookieHeader.slice(0, 200), parsedNames: allNames });
|
|
||||||
}
|
|
||||||
|
|
||||||
// Extract session token from cookies
|
// Extract session token from cookies
|
||||||
let sessionToken: string | null = null;
|
let sessionToken: string | null = null;
|
||||||
for (const name of SESSION_COOKIE_NAMES) {
|
for (const name of SESSION_COOKIE_NAMES) {
|
||||||
@@ -52,7 +45,7 @@ export async function GET(request: NextRequest) {
|
|||||||
let userName: string | null = null;
|
let userName: string | null = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const result = await query<{ email: string; name: string }>(
|
const rows = await query<{ email: string; name: string }>(
|
||||||
`SELECT u.email, u.name
|
`SELECT u.email, u.name
|
||||||
FROM sessions s
|
FROM sessions s
|
||||||
JOIN users u ON u.id = s.user_id
|
JOIN users u ON u.id = s.user_id
|
||||||
@@ -61,11 +54,9 @@ export async function GET(request: NextRequest) {
|
|||||||
LIMIT 1`,
|
LIMIT 1`,
|
||||||
[sessionToken],
|
[sessionToken],
|
||||||
);
|
);
|
||||||
if (result.rows.length > 0) {
|
if (rows.length > 0) {
|
||||||
userEmail = result.rows[0].email;
|
userEmail = rows[0].email;
|
||||||
userName = result.rows[0].name;
|
userName = rows[0].name;
|
||||||
} else {
|
|
||||||
console.log('[theia-auth] No session found for token:', sessionToken.slice(0, 8));
|
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('[theia-auth] DB error:', err);
|
console.error('[theia-auth] DB error:', err);
|
||||||
|
|||||||
Reference in New Issue
Block a user