@ssplib/react-components 0.0.327 → 0.0.329
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/form/file/DropFileUpload.d.ts +1 -1
- package/components/providers/KeycloakAuthProvider.d.ts +29 -3
- package/components/providers/OAuthProvider.d.ts +2 -1
- package/index.cjs +2 -2
- package/index.cjs.map +1 -1
- package/index.d.ts +1 -0
- package/index.esm.js +2 -2
- package/index.esm.js.map +1 -1
- package/package.json +1 -1
- package/types/auth.d.ts +61 -7
package/package.json
CHANGED
package/types/auth.d.ts
CHANGED
|
@@ -1,15 +1,52 @@
|
|
|
1
|
-
import { KeycloakTokenParsed } from 'keycloak-js';
|
|
1
|
+
import { KeycloakLoginOptions, KeycloakLogoutOptions, KeycloakTokenParsed } from 'keycloak-js';
|
|
2
|
+
export type { KeycloakLoginOptions, KeycloakLogoutOptions, KeycloakTokenParsed };
|
|
2
3
|
export interface User extends KeycloakTokenParsed {
|
|
3
4
|
token: string | undefined;
|
|
4
|
-
roles:
|
|
5
|
+
roles: string[];
|
|
5
6
|
image?: string;
|
|
6
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Opções customizadas para o login do Keycloak
|
|
10
|
+
* Extende KeycloakLoginOptions com callbacks adicionais
|
|
11
|
+
*
|
|
12
|
+
* Opções nativas do Keycloak incluídas:
|
|
13
|
+
* - `redirectUri`: URI para redirecionar após login
|
|
14
|
+
* - `prompt`: Controla comportamento de prompt ('none' | 'login' | 'consent')
|
|
15
|
+
* - `maxAge`: Tempo máximo desde última autenticação
|
|
16
|
+
* - `loginHint`: Preenche campo de login automaticamente
|
|
17
|
+
* - `idpHint`: Pula para um IdP específico (ex: 'google', 'facebook')
|
|
18
|
+
* - `action`: Ação a executar ('register' para registro)
|
|
19
|
+
* - `locale`: Localidade preferida para o login
|
|
20
|
+
* - `acr`: Authentication Context Class Reference
|
|
21
|
+
* - `scope`: Escopos adicionais a solicitar
|
|
22
|
+
* - `cordovaOptions`: Opções específicas para Cordova
|
|
23
|
+
*/
|
|
24
|
+
export interface LoginOptions extends KeycloakLoginOptions {
|
|
25
|
+
/** Callback executado após login bem-sucedido */
|
|
26
|
+
onSuccess?: () => void;
|
|
27
|
+
/** Callback executado em caso de erro no login */
|
|
28
|
+
onError?: (error: Error) => void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Opções customizadas para o logout do Keycloak
|
|
32
|
+
* Extende KeycloakLogoutOptions com callbacks adicionais
|
|
33
|
+
*
|
|
34
|
+
* Opções nativas do Keycloak incluídas:
|
|
35
|
+
* - `redirectUri`: URI para redirecionar após logout
|
|
36
|
+
* - `logoutMethod`: Método de logout ('GET' | 'POST') - POST para RP-Initiated Logout
|
|
37
|
+
*/
|
|
38
|
+
export interface LogoutOptions extends KeycloakLogoutOptions {
|
|
39
|
+
/** Callback executado antes do logout (pode ser async para cleanup) */
|
|
40
|
+
onBeforeLogout?: () => void | Promise<void>;
|
|
41
|
+
/** Callback executado após logout bem-sucedido */
|
|
42
|
+
onSuccess?: () => void;
|
|
43
|
+
}
|
|
7
44
|
export interface AuthData {
|
|
8
45
|
isAuth: boolean;
|
|
9
46
|
user: User | null | undefined;
|
|
10
47
|
userLoaded: boolean;
|
|
11
|
-
login: () => void;
|
|
12
|
-
logout: () => void;
|
|
48
|
+
login: (options?: LoginOptions) => void;
|
|
49
|
+
logout: (options?: LogoutOptions) => void;
|
|
13
50
|
}
|
|
14
51
|
export interface AuthClaims {
|
|
15
52
|
sub: string;
|
|
@@ -62,11 +99,28 @@ export interface AuthSspToken {
|
|
|
62
99
|
sub: string;
|
|
63
100
|
}
|
|
64
101
|
export interface AuthReturnData {
|
|
102
|
+
/** Indica se o usuário está autenticado */
|
|
65
103
|
isAuth: boolean;
|
|
104
|
+
/** Tipo de autenticação */
|
|
66
105
|
type: 'govbr' | 'ad';
|
|
67
|
-
|
|
106
|
+
/** Dados do usuário autenticado */
|
|
107
|
+
user: User | null;
|
|
108
|
+
/** Indica se os dados do usuário já foram carregados (loading completo) */
|
|
68
109
|
userLoaded: boolean;
|
|
69
|
-
login
|
|
110
|
+
/** Inicia o fluxo de login com opções customizáveis */
|
|
111
|
+
login: (options?: LoginOptions) => void;
|
|
112
|
+
/** Salva dados do usuário vindos de token externo */
|
|
70
113
|
saveUserData: (token: AuthReturn) => void;
|
|
71
|
-
logout
|
|
114
|
+
/** Inicia o fluxo de logout com opções customizáveis */
|
|
115
|
+
logout: (options?: LogoutOptions) => void;
|
|
116
|
+
/** Atualiza o token manualmente */
|
|
117
|
+
refreshToken: () => Promise<boolean>;
|
|
118
|
+
/** Verifica se o usuário possui uma role específica */
|
|
119
|
+
hasRole: (role: string) => boolean;
|
|
120
|
+
/** Verifica se o usuário possui todas as roles especificadas */
|
|
121
|
+
hasAllRoles: (roles: string[]) => boolean;
|
|
122
|
+
/** Verifica se o usuário possui pelo menos uma das roles especificadas */
|
|
123
|
+
hasAnyRole: (roles: string[]) => boolean;
|
|
124
|
+
/** Token de acesso atual */
|
|
125
|
+
accessToken: string | undefined;
|
|
72
126
|
}
|