MCPcopy Create free account
hub / github.com/bewcloud/bewcloud / logoutUser

Function logoutUser

lib/auth.ts:161–202  ·  view source on GitHub ↗
(request: Request)

Source from the content-addressed store, hash-verified

159}
160
161export async function logoutUser(request: Request) {
162 const tomorrow = new Date(new Date().setDate(new Date().getDate() + 1));
163
164 const cookies = getCookies(request.headers);
165
166 const result = await getDataFromCookie(cookies[COOKIE_NAME]);
167
168 if (!result || !result.tokenData?.session_id || !result.user) {
169 throw new Error('Invalid session');
170 }
171
172 const { tokenData } = result;
173 const { session_id } = tokenData;
174
175 // Delete user session
176 await UserSessionModel.delete(session_id);
177
178 // Generate response with empty and expiring cookie
179 const cookie: Cookie = {
180 name: COOKIE_NAME,
181 value: '',
182 expires: tomorrow,
183 path: '/',
184 secure: isRunningLocally(request) ? false : true,
185 httpOnly: true,
186 sameSite: 'Lax',
187 domain: await resolveCookieDomain(request),
188 };
189
190 if (await AppConfig.isCookieDomainSecurityDisabled()) {
191 delete cookie.domain;
192 }
193
194 const response = new Response('Logged Out', {
195 status: 303,
196 headers: { 'Location': '/', 'Content-Type': 'text/html; charset=utf-8' },
197 });
198
199 setCookie(response.headers, cookie);
200
201 return response;
202}
203
204export async function createSessionResponse(
205 request: Request,

Callers 1

getFunction · 0.90

Calls 5

isRunningLocallyFunction · 0.90
getDataFromCookieFunction · 0.85
resolveCookieDomainFunction · 0.85
deleteMethod · 0.45

Tested by

no test coverage detected