# Keyfob v0.1.0 - Table of Contents

> QR device-handoff login for Phoenix LiveView. Show a QR on the login screen, approve from an already-authenticated phone, and the waiting browser signs in — auth-system-agnostic: your app issues the session.

## Pages

- [Keyfob](readme.md)
- [Changelog](changelog.md)

## Modules

- [Keyfob](Keyfob.md): QR device-handoff login for Phoenix LiveView.
- [Keyfob.Components](Keyfob.Components.md): Unstyled, headless-ish function components for the two surfaces of the
flow: the desktop QR `panel/1` and the phone `confirm_screen/1`.
- [Keyfob.Live](Keyfob.Live.md): LiveView glue for the desktop panel. Handles the create → subscribe →
render → await-approval → navigate cycle so a login LiveView only has
to render `Keyfob.Components.panel/1` and forward one message.
- [Keyfob.QR](Keyfob.QR.md): Renders a string as an inline SVG QR code via `eqrcode`.
- [Keyfob.Request](Keyfob.Request.md): A login-handoff request as held by the store.
- [Keyfob.Store](Keyfob.Store.md): Storage contract for Keyfob requests — a small keyed store with TTLs
and two atomicity guarantees the login flow leans on
- [Keyfob.Store.ETS](Keyfob.Store.ETS.md): The built-in single-node store: one ETS table owned by a GenServer.

