( request: Request, user: User, response: Response, isShortLived = false, )
| 219 | } |
| 220 | |
| 221 | export async function createSessionCookie( |
| 222 | request: Request, |
| 223 | user: User, |
| 224 | response: Response, |
| 225 | isShortLived = false, |
| 226 | ) { |
| 227 | const newSession = await UserSessionModel.create(user, isShortLived); |
| 228 | |
| 229 | // Generate response with session cookie |
| 230 | const token = await generateToken({ user_id: user.id, session_id: newSession.id }); |
| 231 | |
| 232 | const cookie: Cookie = { |
| 233 | name: COOKIE_NAME, |
| 234 | value: token, |
| 235 | expires: newSession.expires_at, |
| 236 | path: '/', |
| 237 | secure: isRunningLocally(request) ? false : true, |
| 238 | httpOnly: true, |
| 239 | sameSite: 'Lax', |
| 240 | domain: await resolveCookieDomain(request), |
| 241 | }; |
| 242 | |
| 243 | if (await AppConfig.isCookieDomainSecurityDisabled()) { |
| 244 | delete cookie.domain; |
| 245 | } |
| 246 | |
| 247 | setCookie(response.headers, cookie); |
| 248 | |
| 249 | return response; |
| 250 | } |
no test coverage detected