UNPKG

@adonis-agora/authkit-react

Version:

Frontend ergonomics over AuthKit for AdonisJS + Inertia + React apps: a typed useAuth() hook, role-gating hooks and gating components.

21 lines (20 loc) 1.17 kB
import { authenticatePasskey, registerPasskey, } from './authenticate.js'; import { submitClassicForm } from './classic_form.js'; function flowFields(response, csrfToken, returnTo) { const fields = { response }; if (csrfToken) fields._csrf = csrfToken; if (returnTo) fields.return_to = returnTo; return fields; } export async function runPasskeyAssertion(options, deps = {}) { const { optionsUrl, actionUrl, csrfToken, returnTo } = options; const assertion = await authenticatePasskey({ optionsUrl, csrfToken }, { fetch: deps.fetch, loadStartAuthentication: deps.loadStartAuthentication }); submitClassicForm({ action: actionUrl, fields: flowFields(assertion, csrfToken, returnTo) }, { document: deps.document }); } export async function runPasskeyRegistration(options, deps = {}) { const { optionsUrl, actionUrl, csrfToken, returnTo } = options; const attestation = await registerPasskey({ optionsUrl, csrfToken }, { fetch: deps.fetch, loadStartRegistration: deps.loadStartRegistration }); submitClassicForm({ action: actionUrl, fields: flowFields(attestation, csrfToken, returnTo) }, { document: deps.document }); }