@hmyapps/auth
v2.1.0
Published
Unified Auth SDK fuer alle Haaremy Apps — SSO Login, Token-Management, Activity Feed
Readme
@hmyapps/auth
Unified Auth SDK fuer alle Haaremy Apps.
Features
- SSO Login/Logout/Register via sso.haaremy.de
- JWT Token Management mit Auto-Refresh
- BroadcastChannel Tab-Sync (ein Tab refresht, alle profitieren)
- SSE Session-Invalidierung via hmyNotify
- Activity Feed API (vorbereitet, wartet auf Backend)
- React Hooks:
useAuth(),useActivityFeed(),useRequireAuth()
Installation
// Direkt importieren (kein npm publish noetig)
import { auth, init, login, logout } from "/opt/hmyAuth/dist/index.mjs";
import { useAuth, useActivityFeed } from "/opt/hmyAuth/dist/react.mjs";Nutzung
Vanilla JS/TS
import { init, login, logout, subscribe, getActivityFeed } from "@hmyapps/auth";
// Initialisieren
await init({ requiredApp: "chat" });
// Login
const user = await login({ username_or_email: "max", password: "..." });
// State abonnieren
subscribe((state, user) => {
console.log(state, user);
});
// Activity Feed (benoetigt hmyNotify History-Endpoint)
const events = await getActivityFeed({ limit: 20 });React
import { useAuth, useActivityFeed } from "@hmyapps/auth/react";
function App() {
const { state, user, login, logout, isAuthenticated } = useAuth();
const { events, loading } = useActivityFeed({ intervalMs: 30000 });
if (state === "loading") return <p>Laden...</p>;
if (!isAuthenticated) return <LoginForm onSubmit={login} />;
return (
<div>
<p>Hallo {user.username}</p>
<h3>Letzte Aktivitaeten</h3>
{events.map(e => <div key={e.id}>{e.type} — {new Date(e.timestamp).toLocaleString()}</div>)}
<button onClick={logout}>Abmelden</button>
</div>
);
}Activity Feed — Backend-Anforderungen
Der Activity Feed benoetigt einen neuen Endpoint in hmyNotify:
GET /api/events/history?topic=user.<userId>&limit=50&offset=0&types=login,logout
Authorization: Bearer <sso-token>Ausserdem muss das SSO bei Login/Logout/etc. Events an hmyNotify publishen.
Status: SDK-seitig fertig implementiert, wartet auf Backend-Implementierung.
Version
- 1.0.0 — Initiales Release mit Auth-Core + Activity Feed Stub
