UNPKG

@asgardeo/nextjs

Version:

Next.js implementation of Asgardeo JavaScript SDK.

94 lines (93 loc) 2.75 kB
/** * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com). * * WSO2 LLC. licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except * in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ import { JWTPayload } from 'jose'; /** * Session token payload interface */ export interface SessionTokenPayload extends JWTPayload { /** User ID */ sub: string; /** Session ID */ sessionId: string; /** OAuth scopes */ scopes: string[]; /** Organization ID if applicable */ organizationId?: string; /** Issued at timestamp */ iat: number; /** Expiration timestamp */ exp: number; } /** * Session management utility class for JWT-based session cookies */ declare class SessionManager { private static readonly DEFAULT_EXPIRY_SECONDS; /** * Get the signing secret from environment variable * Throws error in production if not set */ private static getSecret; /** * Create a temporary session cookie for login initiation */ static createTempSession(sessionId: string): Promise<string>; /** * Create a session cookie with user information */ static createSessionToken(accessToken: string, userId: string, sessionId: string, scopes: string, organizationId?: string, expirySeconds?: number): Promise<string>; /** * Verify and decode a session token */ static verifySessionToken(token: string): Promise<SessionTokenPayload>; /** * Verify and decode a temporary session token */ static verifyTempSession(token: string): Promise<{ sessionId: string; }>; /** * Get session cookie options */ static getSessionCookieOptions(): { httpOnly: boolean; secure: boolean; sameSite: "lax"; path: string; maxAge: number; }; /** * Get temporary session cookie options */ static getTempSessionCookieOptions(): { httpOnly: boolean; secure: boolean; sameSite: "lax"; path: string; maxAge: number; }; /** * Get session cookie name */ static getSessionCookieName(): string; /** * Get temporary session cookie name */ static getTempSessionCookieName(): string; } export default SessionManager;