5dd975a9cd
- Auth: iron-session, регистрация/логин по email+password - Дашборд со списком каналов - 3-шаговая анкета создания канала (база/стиль/примеры+табу) - Страница канала с генератором постов через polling - Тёмная тема, Tailwind 3.4, accent emerald - Прокси-API к zeropost-engine с x-user-id - Совместимость с Next 16 async cookies/params
25 lines
689 B
JavaScript
25 lines
689 B
JavaScript
import { cookies } from 'next/headers';
|
|
import { getIronSession } from 'iron-session';
|
|
|
|
const sessionOptions = {
|
|
cookieName: 'zeropost_session',
|
|
password: process.env.SESSION_SECRET || 'this_is_a_dev_secret_change_in_prod_at_least_32_chars',
|
|
cookieOptions: {
|
|
secure: process.env.NODE_ENV === 'production',
|
|
sameSite: 'lax',
|
|
httpOnly: true,
|
|
maxAge: 60 * 60 * 24 * 30,
|
|
},
|
|
};
|
|
|
|
export async function getSession() {
|
|
const cookieStore = await cookies();
|
|
return getIronSession(cookieStore, sessionOptions);
|
|
}
|
|
|
|
export async function requireUser() {
|
|
const s = await getSession();
|
|
if (!s.userId) return null;
|
|
return { id: s.userId, email: s.email, name: s.name };
|
|
}
|