win-portal-auth-sdk-react
v1.0.0
Published
React bindings for Win Portal Auth SDK - session management with Socket.IO
Maintainers
Readme
win-portal-auth-sdk-react
React bindings for Win Portal Auth SDK — session management with Socket.IO. Headless (no UI); your app implements dialogs.
Install
pnpm add win-portal-auth-sdk-reactPeer dependencies: react, react-dom, socket.io-client (optional).
Usage
Wrap your app (or protected layout) with SessionProvider, then use useSession() to drive your own dialogs.
import { SessionProvider, useSession } from 'win-portal-auth-sdk-react';
<SessionProvider
token={token}
wsUrl="https://portal.example.com"
userId={currentUser?.id}
tokenStorageKey="my-app-auth-token"
onTokenRefresh={async () => {
const res = await authService.refreshToken();
return res.data.token;
}}
onSessionEnd={() => { window.location.href = '/login'; }}
>
<App />
<SessionDialogs />
</SessionProvider>
function SessionDialogs() {
const { sessionState, remainingSeconds, continueSession } = useSession();
if (sessionState === 'expiring') return <YourWarningDialog onContinue={continueSession} seconds={remainingSeconds} />;
if (sessionState === 'expired' || sessionState === 'revoked') return <YourExpiredDialog />;
return null;
}API
- SessionProvider — props:
token,wsUrl,userId?,tokenStorageKey?,onTokenRefresh?,onSessionEnd? - useSession() — returns
isConnected,sessionState,remainingSeconds,expiringData,expiredData,revokedData,continueSession,sendHeartbeat - useSessionEvents(options) — lower-level hook (token, wsUrl, callbacks) when you don’t use the provider
See app-integration guide in auth-sdk for full integration details.
