@gftdcojp/auth
Version:
✅ Enterprise-grade Auth0 integration for GFTD platform - 90% Complete, High Quality Implementation
91 lines • 2.48 kB
TypeScript
/**
* Next.js Auth0 型定義
*
* 🔄 クライアント・サーバー共通
* - 型定義のみでランタイム依存なし
* - Next.jsランタイム非依存
*/
import { UserPayload } from './types';
/**
* Next.js Auth0 設定
*/
export interface NextJsAuth0Config {
domain: string;
clientId: string;
clientSecret: string;
appBaseUrl: string;
secret: string;
scope?: string;
audience?: string;
signInReturnToPath?: string;
logoutStrategy?: 'auto' | 'oidc' | 'v2';
/** 🆕 組織設定 */
organization?: {
/** 組織ID(固定の組織の場合) */
organizationId?: string;
/** 組織名(固定の組織の場合) */
organizationName?: string;
/** 組織招待URLでの自動参加 */
autoAcceptInvitations?: boolean;
/** 組織コンテキストの必須化 */
requireOrganization?: boolean;
/** 組織選択ページのURL */
organizationSelectionUrl?: string;
};
session?: {
absoluteLifetime?: number;
rollingDuration?: number;
rolling?: boolean;
cookie?: {
domain?: string;
path?: string;
secure?: boolean;
sameSite?: 'strict' | 'lax' | 'none';
transient?: boolean;
};
};
routes?: {
login?: string;
logout?: string;
callback?: string;
profile?: string;
accessToken?: string;
backchannelLogout?: string;
/** 🆕 組織関連ルート */
organizationLogin?: string;
organizationCallback?: string;
organizationSelection?: string;
};
}
/**
* セッション情報
*/
export interface Session {
user: UserPayload;
idToken: string;
accessToken: string;
refreshToken?: string;
expiresAt: number;
createdAt: number;
/** 🆕 組織コンテキスト */
organizationContext?: {
organizationId: string;
organizationName?: string;
roles?: string[];
permissions?: string[];
};
}
/**
* 🆕 組織ログインオプション
*/
export interface OrganizationLoginOptions {
/** 組織ID */
organizationId: string;
/** リダイレクト先 */
returnTo?: string;
/** 招待コード(ある場合) */
invitation?: string;
/** 組織固有のコネクション */
connection?: string;
}
//# sourceMappingURL=nextjs-auth0-types.d.ts.map