@elogroup-sereduc/ser-front-core-client 1.1.1 → 2.0.1
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/OAUTH_MIGRATION.md +86 -0
- package/README.md +143 -388
- package/dist/{axios.d.ts → api-client.d.ts} +3 -3
- package/dist/api-client.d.ts.map +1 -0
- package/dist/{axios.js → api-client.js} +11 -11
- package/dist/api-client.js.map +1 -0
- package/dist/auth/bootstrap.d.ts +14 -0
- package/dist/auth/bootstrap.d.ts.map +1 -0
- package/dist/auth/bootstrap.js +28 -0
- package/dist/auth/bootstrap.js.map +1 -0
- package/dist/auth/http-client.d.ts +3 -0
- package/dist/auth/http-client.d.ts.map +1 -0
- package/dist/auth/http-client.js +31 -0
- package/dist/auth/http-client.js.map +1 -0
- package/dist/auth/index.d.ts +19 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +22 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/route-guards.d.ts +14 -0
- package/dist/auth/route-guards.d.ts.map +1 -0
- package/dist/auth/route-guards.js +59 -0
- package/dist/auth/route-guards.js.map +1 -0
- package/dist/auth/ser-oauth-js.d.ts +54 -0
- package/dist/auth/ser-oauth-js.d.ts.map +1 -0
- package/dist/auth/ser-oauth-js.js +405 -0
- package/dist/auth/ser-oauth-js.js.map +1 -0
- package/dist/auth/store.d.ts +14 -0
- package/dist/auth/store.d.ts.map +1 -0
- package/dist/auth/store.js +20 -0
- package/dist/auth/store.js.map +1 -0
- package/dist/index.d.ts +3 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/keycloak.d.ts +12 -2
- package/dist/keycloak.d.ts.map +1 -1
- package/dist/keycloak.js +168 -125
- package/dist/keycloak.js.map +1 -1
- package/dist/utils/auth.d.ts +8 -0
- package/dist/utils/auth.d.ts.map +1 -1
- package/dist/utils/auth.js +13 -2
- package/dist/utils/auth.js.map +1 -1
- package/package.json +8 -6
- package/public/silent-callback.html +19 -0
- package/public/silent-check-sso.html +30 -0
- package/dist/axios.d.ts.map +0 -1
- package/dist/axios.js.map +0 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Migração para Ser OAuth System
|
|
2
|
+
|
|
3
|
+
Esta biblioteca agora inclui um sistema completo de autenticação OAuth/OIDC (`ser-oauth-js`) além do sistema Keycloak original.
|
|
4
|
+
|
|
5
|
+
## Nova Implementação: Ser OAuth
|
|
6
|
+
|
|
7
|
+
### Características
|
|
8
|
+
|
|
9
|
+
- ✅ **Silent SSO**: Autenticação invisível via iframe
|
|
10
|
+
- ✅ **PKCE S256**: Segurança avançada para SPAs
|
|
11
|
+
- ✅ **Token Refresh**: Renovação automática de tokens
|
|
12
|
+
- ✅ **API Client**: Cliente HTTP com interceptadores automáticos
|
|
13
|
+
- ✅ **Route Guards**: Proteção de rotas para TanStack Router
|
|
14
|
+
- ✅ **Zustand Store**: Gerenciamento de estado reativo
|
|
15
|
+
- ✅ **IDP Hint**: Redirecionamento automático para provedores específicos
|
|
16
|
+
|
|
17
|
+
### Setup Básico
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
import {
|
|
21
|
+
createKeycloakAuthFromUrl,
|
|
22
|
+
initAuth,
|
|
23
|
+
useAuthStore,
|
|
24
|
+
} from "@elogroup-sereduc/ser-front-core-client";
|
|
25
|
+
|
|
26
|
+
const kc = createKeycloakAuthFromUrl(
|
|
27
|
+
"https://sso.sereduc.com/realms/colaboradores/protocol/openid-connect/auth",
|
|
28
|
+
"seu-client-id",
|
|
29
|
+
"ser-oidc", // IDP hint opcional
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
const authenticated = await initAuth(kc, "/seu-base-path");
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Migração de Projetos
|
|
36
|
+
|
|
37
|
+
1. **Instalar nova versão** da biblioteca
|
|
38
|
+
2. **Copiar `silent-check-sso.html`** para pasta public
|
|
39
|
+
3. **Substituir inicialização** do auth
|
|
40
|
+
4. **Atualizar imports** dos hooks/stores
|
|
41
|
+
5. **Testar Silent SSO** e fluxo completo
|
|
42
|
+
|
|
43
|
+
### Exemplo de Context
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
import { useAuthStore } from "@elogroup-sereduc/ser-front-core-client";
|
|
47
|
+
|
|
48
|
+
export function useAuth() {
|
|
49
|
+
const authState = useAuthStore();
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
authenticated: authState.authenticated,
|
|
53
|
+
token: authState.accessToken,
|
|
54
|
+
login: () => kc.login(),
|
|
55
|
+
logout: () => kc.logout(),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### API Client
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
import { createApiClient } from "@elogroup-sereduc/ser-front-core-client";
|
|
64
|
+
|
|
65
|
+
const api = createApiClient(kc, "https://api.sereduc.com");
|
|
66
|
+
|
|
67
|
+
// O cliente automaticamente:
|
|
68
|
+
// - Adiciona Bearer token
|
|
69
|
+
// - Renova em caso de 401
|
|
70
|
+
// - Retenta requisição
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Route Guards
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
import { createAuthGuard } from "@elogroup-sereduc/ser-front-core-client";
|
|
77
|
+
|
|
78
|
+
const requireAuth = createAuthGuard(kc);
|
|
79
|
+
|
|
80
|
+
export const Route = createFileRoute("/protected")({
|
|
81
|
+
beforeLoad: requireAuth,
|
|
82
|
+
component: ProtectedComponent,
|
|
83
|
+
});
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Ver documentação completa em `src/auth/README.md`.
|