High-level browser helpers for Sign in with U-net.
import {
createLoginSession,
isApprovedLoginResult,
pollLoginSession,
renderLoginQrPayload,
} from '@union-networks/web-login';
const session = await createLoginSession(
{
serviceId: 'example-shop',
origin: window.location.origin,
expiresInSeconds: 120,
},
{ issuerBaseUrl: 'https://issuer.egress.live' },
);
renderQr(renderLoginQrPayload(session));
const result = await pollLoginSession(session.sessionId, {
issuerBaseUrl: 'https://issuer.egress.live',
intervalMs: 1500,
timeoutMs: 120000,
});
if (isApprovedLoginResult(result)) {
await fetch('/api/unet/session', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({ assertionJws: result.assertionJws }),
});
}