getSessionCookie and getCookieCache always null

I'm having issue with middleware and getSessionCookie in next15 Here's my middleware.ts:
import { getCookieCache, getSessionCookie } from 'better-auth/cookies';
import createMiddleware from 'next-intl/middleware';
import { NextRequest, NextResponse } from 'next/server';

import { PROTECTED_ROUTES, ROUTES } from './constants/urls.const';
import { routing } from './i18n/routing';

const intlMiddleware = createMiddleware(routing);

export default async function middleware(request: NextRequest) {
const { nextUrl } = request;

const allCookies = request.cookies.getAll();
const sessionCookie = getSessionCookie(request, {
cookieName: 'session_token',
cookiePrefix: 'Secure-auth',
});
const session = await getCookieCache(request);

const betterAuthCookie = request.cookies.get('Secure-auth.session_token');

const isLoggedIn = !!betterAuthCookie;
const isOnProtectedRoute = PROTECTED_ROUTES.includes(nextUrl.pathname);
const isOnAuthRoute = nextUrl.pathname === ROUTES.LOGIN;

if (isOnProtectedRoute && !isLoggedIn) {
return NextResponse.redirect(new URL(ROUTES.LOGIN, request.url));
}

if (isOnAuthRoute && isLoggedIn) {
return NextResponse.redirect(new URL(ROUTES.PROFILE, request.url));
}

return intlMiddleware(request);
}

export const config = {
matcher: ['/((?!api|_next|_vercel|.*\\..*).*)', '/([\\w-]+)?/users/(.+)'],
runtime: 'nodejs',
};
import { getCookieCache, getSessionCookie } from 'better-auth/cookies';
import createMiddleware from 'next-intl/middleware';
import { NextRequest, NextResponse } from 'next/server';

import { PROTECTED_ROUTES, ROUTES } from './constants/urls.const';
import { routing } from './i18n/routing';

const intlMiddleware = createMiddleware(routing);

export default async function middleware(request: NextRequest) {
const { nextUrl } = request;

const allCookies = request.cookies.getAll();
const sessionCookie = getSessionCookie(request, {
cookieName: 'session_token',
cookiePrefix: 'Secure-auth',
});
const session = await getCookieCache(request);

const betterAuthCookie = request.cookies.get('Secure-auth.session_token');

const isLoggedIn = !!betterAuthCookie;
const isOnProtectedRoute = PROTECTED_ROUTES.includes(nextUrl.pathname);
const isOnAuthRoute = nextUrl.pathname === ROUTES.LOGIN;

if (isOnProtectedRoute && !isLoggedIn) {
return NextResponse.redirect(new URL(ROUTES.LOGIN, request.url));
}

if (isOnAuthRoute && isLoggedIn) {
return NextResponse.redirect(new URL(ROUTES.PROFILE, request.url));
}

return intlMiddleware(request);
}

export const config = {
matcher: ['/((?!api|_next|_vercel|.*\\..*).*)', '/([\\w-]+)?/users/(.+)'],
runtime: 'nodejs',
};
2 Replies
nosovandriy
nosovandriyOP3w ago
And here’s the console output:
MIDDLEWARE DEBUG: {
isOnAuthRoute: false,
betterAuthCookie: true,
betterAuthCookieValue: 'F9re4fIzdHuMBr99Mie3XVruiBiShEcf.dnBeFi7f+wzId83kiOxBlcsIX0K71O3aT9icxq3clgA=',
url: '/profile',
allCookiesCount: 3,
allCookies: [
{ name: 'NEXT_LOCALE', hasValue: true },
{ name: 'catalog-view-preference', hasValue: true },
{ name: '__Secure-auth.session_token', hasValue: true }
],
sessionCookie: null,
session: null,
isLoggedIn: true
}
MIDDLEWARE DEBUG: {
isOnAuthRoute: false,
betterAuthCookie: true,
betterAuthCookieValue: 'F9re4fIzdHuMBr99Mie3XVruiBiShEcf.dnBeFi7f+wzId83kiOxBlcsIX0K71O3aT9icxq3clgA=',
url: '/profile',
allCookiesCount: 3,
allCookies: [
{ name: 'NEXT_LOCALE', hasValue: true },
{ name: 'catalog-view-preference', hasValue: true },
{ name: '__Secure-auth.session_token', hasValue: true }
],
sessionCookie: null,
session: null,
isLoggedIn: true
}
getSessionCookie and getCookieCache always null😩
Rafiul
Rafiul2w ago
got this too.. only on production tho.

Did you find this page helpful?