Files
1Panel/frontend/src/api/interface/auth.ts
be672d604f feat:Support logging in with oidc and saml2 (#13441)
* feat(auth): implement OIDC authentication endpoints and error handling

* feat(auth): add OIDC provider discovery endpoint and related functionality

* feat(auth): add SAML2 authentication support and related functionality

* feat(auth): add LDAP authentication support and related functionality

* fix(auth): improve login keydown handler for better event handling
2026-08-03 13:43:01 +08:00

137 lines
3.5 KiB
Go

export namespace Login {
export interface ReqLoginForm {
name: string;
password: string;
captcha: string;
captchaID: string;
authMethod: string;
authSource: 'local' | 'ldap';
}
export interface MFALoginForm {
sessionId: string;
code: string;
authMethod: string;
}
export interface ResLogin {
name: string;
role: string;
token: string;
mfaStatus: string;
mfaSession: string;
}
export interface PasskeyBeginResponse {
sessionId: string;
publicKey: Record<string, any>;
}
export interface OIDCStatus {
enabled: boolean;
displayName: string;
authorizationCode: boolean;
}
export interface LDAPStatus {
enabled: boolean;
}
export interface OIDCBeginResponse {
authorizationURL: string;
}
export interface OIDCFinishRequest {
ticket: string;
}
export interface SAML2Status {
enabled: boolean;
displayName: string;
syncLogout: boolean;
}
export interface SAML2RedirectNavigation {
binding: 'redirect';
redirectURL: string;
}
export interface SAML2PostNavigation {
binding: 'post';
postURL: string;
fields: Record<string, string>;
}
export type SAML2Navigation = SAML2RedirectNavigation | SAML2PostNavigation;
export interface SAML2BeginResponse {
navigation: SAML2Navigation;
}
export interface SAML2FinishRequest {
ticket: string;
}
export interface LogOutResponse {
saml2Navigation?: SAML2Navigation;
}
export interface ResCaptcha {
imagePath: string;
captchaID: string;
captchaLength: number;
}
export interface ResAuthButtons {
[propName: string]: any;
}
export interface LoginSetting {
isDemo: boolean;
isIntl: boolean;
isFxplay: boolean;
language: string;
menuTabs: string;
menuAccordion: string;
panelName: string;
theme: string;
isOffline: boolean;
isEnterprise: boolean;
needCaptcha: boolean;
passkeySetting: boolean;
}
export interface AuthInfo {
id: number;
name: string;
mfaStatus: string;
mfaInterval: number;
role: string;
permissions: string[];
masterOnlyPermissions?: string[];
nodeRoles: Array<{ nodeId: number; nodeName: string; roleId: number; roleName: string }>;
authSource: string;
authSourceStatus: string;
apiInterfaceStatus: string;
apiKey: string;
ipWhiteList: string;
apiTrustedProxies: string;
apiKeyValidityTime: number;
}
export interface AuthInfoUpdate {
id: number;
name: string;
password: string;
oldPassword: string;
}
export interface MFARequest {
title: string;
interval: number;
}
export interface MFAInfo {
secret: string;
qrImage: string;
}
export interface MFABind {
secret: string;
code: string;
interval: number;
}
export interface ApiConfig {
apiInterfaceStatus: string;
apiKey: string;
ipWhiteList: string;
apiTrustedProxies: string;
apiKeyValidityTime: number;
}
export interface PasswordUpdate {
oldPassword: string;
newPassword: string;
}
}