mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-14 22:02:24 +00:00
move client code
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { getSessionCookieById } from "@/lib/cookies";
|
import { getSessionCookieById } from "@/lib/cookies";
|
||||||
import { isSessionValid, loadMostRecentSession } from "@/lib/session";
|
import { loadMostRecentSession } from "@/lib/session";
|
||||||
import {
|
import {
|
||||||
getBrandingSettings,
|
getBrandingSettings,
|
||||||
getLoginSettings,
|
getLoginSettings,
|
||||||
@@ -11,6 +11,7 @@ import Alert from "@/ui/Alert";
|
|||||||
import BackButton from "@/ui/BackButton";
|
import BackButton from "@/ui/BackButton";
|
||||||
import ChooseSecondFactorToSetup from "@/ui/ChooseSecondFactorToSetup";
|
import ChooseSecondFactorToSetup from "@/ui/ChooseSecondFactorToSetup";
|
||||||
import DynamicTheme from "@/ui/DynamicTheme";
|
import DynamicTheme from "@/ui/DynamicTheme";
|
||||||
|
import { isSessionValid } from "@/ui/SessionItem";
|
||||||
import UserAvatar from "@/ui/UserAvatar";
|
import UserAvatar from "@/ui/UserAvatar";
|
||||||
import { Session } from "@zitadel/proto/zitadel/session/v2/session_pb";
|
import { Session } from "@zitadel/proto/zitadel/session/v2/session_pb";
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import { timestampDate } from "@zitadel/client";
|
|
||||||
import { Session } from "@zitadel/proto/zitadel/session/v2/session_pb";
|
import { Session } from "@zitadel/proto/zitadel/session/v2/session_pb";
|
||||||
import { GetSessionResponse } from "@zitadel/proto/zitadel/session/v2/session_service_pb";
|
import { GetSessionResponse } from "@zitadel/proto/zitadel/session/v2/session_service_pb";
|
||||||
import { getMostRecentCookieWithLoginname } from "./cookies";
|
import { getMostRecentCookieWithLoginname } from "./cookies";
|
||||||
@@ -16,16 +15,3 @@ export async function loadMostRecentSession(sessionParams: {
|
|||||||
.getSession({ sessionId: recent.id, sessionToken: recent.token }, {})
|
.getSession({ sessionId: recent.id, sessionToken: recent.token }, {})
|
||||||
.then((resp: GetSessionResponse) => resp.session);
|
.then((resp: GetSessionResponse) => resp.session);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isSessionValid(session: Partial<Session>) {
|
|
||||||
const validPassword = session?.factors?.password?.verifiedAt;
|
|
||||||
const validPasskey = session?.factors?.webAuthN?.verifiedAt;
|
|
||||||
const stillValid = session.expirationDate
|
|
||||||
? timestampDate(session.expirationDate) > new Date()
|
|
||||||
: true;
|
|
||||||
|
|
||||||
const verifiedAt = validPassword || validPasskey;
|
|
||||||
const valid = (validPassword || validPasskey) && stillValid;
|
|
||||||
|
|
||||||
return { valid, verifiedAt };
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { cleanupSession } from "@/lib/server/session";
|
import { cleanupSession } from "@/lib/server/session";
|
||||||
import { isSessionValid } from "@/lib/session";
|
|
||||||
import { XCircleIcon } from "@heroicons/react/24/outline";
|
import { XCircleIcon } from "@heroicons/react/24/outline";
|
||||||
import { timestampDate } from "@zitadel/client";
|
import { timestampDate } from "@zitadel/client";
|
||||||
import { Session } from "@zitadel/proto/zitadel/session/v2/session_pb";
|
import { Session } from "@zitadel/proto/zitadel/session/v2/session_pb";
|
||||||
@@ -10,6 +9,19 @@ import Link from "next/link";
|
|||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import { Avatar } from "./Avatar";
|
import { Avatar } from "./Avatar";
|
||||||
|
|
||||||
|
export function isSessionValid(session: Partial<Session>) {
|
||||||
|
const validPassword = session?.factors?.password?.verifiedAt;
|
||||||
|
const validPasskey = session?.factors?.webAuthN?.verifiedAt;
|
||||||
|
const stillValid = session.expirationDate
|
||||||
|
? timestampDate(session.expirationDate) > new Date()
|
||||||
|
: true;
|
||||||
|
|
||||||
|
const verifiedAt = validPassword || validPasskey;
|
||||||
|
const valid = (validPassword || validPasskey) && stillValid;
|
||||||
|
|
||||||
|
return { valid, verifiedAt };
|
||||||
|
}
|
||||||
|
|
||||||
export default function SessionItem({
|
export default function SessionItem({
|
||||||
session,
|
session,
|
||||||
reload,
|
reload,
|
||||||
|
|||||||
Reference in New Issue
Block a user