sessionize-auth
Version:
A flexible session management library for React, Next.js, Angular, and React Native
69 lines (61 loc) • 1.38 kB
text/typescript
/**
* SSO (Single Sign-On) types for sessionize-auth
*/
export interface SSOProvider {
id: string;
name: string;
icon?: string;
color?: string;
scopes: string[];
authUrl: string;
tokenUrl: string;
userInfoUrl: string;
clientId: string;
redirectUri: string;
}
export interface SSOConfig {
providers: SSOProvider[];
defaultRedirectPath?: string;
stateParam?: string;
codeParam?: string;
errorParam?: string;
popupMode?: boolean;
popupWidth?: number;
popupHeight?: number;
}
export interface SSOUser {
id: string;
email: string;
name: string;
avatar?: string;
provider: string;
providerId: string;
accessToken?: string;
refreshToken?: string;
expiresAt?: number;
}
export interface SSOAuthResult {
success: boolean;
user?: SSOUser;
error?: string;
provider?: string;
}
export interface SSOAuthState {
provider: string;
state: string;
timestamp: number;
returnTo?: string;
}
export interface SSOProviderConfig {
clientId: string;
clientSecret?: string;
redirectUri: string;
scopes?: string[];
customParams?: Record<string, string>;
}
export interface SSOError {
code: string;
message: string;
provider?: string;
details?: any;
}