in packages/better-auth/src/db/internal-adapter.ts [490:529]
deleteSessions: async (userIdOrSessionTokens: string | string[]) => {
if (secondaryStorage) {
if (typeof userIdOrSessionTokens === "string") {
const activeSession = await secondaryStorage.get(
`active-sessions-${userIdOrSessionTokens}`,
);
const sessions = activeSession
? safeJSONParse<{ token: string }[]>(activeSession)
: [];
if (!sessions) return;
for (const session of sessions) {
await secondaryStorage.delete(session.token);
}
} else {
for (const sessionToken of userIdOrSessionTokens) {
const session = await secondaryStorage.get(sessionToken);
if (session) {
await secondaryStorage.delete(sessionToken);
}
}
}
if (
!options.session?.storeSessionInDatabase ||
ctx.options.session?.preserveSessionInDatabase
) {
return;
}
}
await adapter.deleteMany({
model: "session",
where: [
{
field: Array.isArray(userIdOrSessionTokens) ? "token" : "userId",
value: userIdOrSessionTokens,
operator: Array.isArray(userIdOrSessionTokens) ? "in" : undefined,
},
],
});
},