├── .credo.exs ├── .formatter.exs ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── pull_request_template.md └── workflows │ └── elixir.yml ├── .gitignore ├── .prettierrc.yaml ├── .tool-versions ├── .vscode ├── extensions.json └── settings.json ├── LICENSE ├── README.md ├── config └── config.exs ├── lib ├── mix │ └── tasks │ │ └── wac.install.ex ├── wac_gen │ ├── app_html.ex │ ├── components.ex │ ├── contexts.ex │ ├── controllers.ex │ ├── fixtures.ex │ ├── generator_error.ex │ ├── javascript.ex │ ├── live_views.ex │ ├── migrations.ex │ ├── misc.ex │ ├── router.ex │ ├── schemas.ex │ ├── session_hooks.ex │ └── tests.ex └── webauthn_components │ ├── authentication_component.ex │ ├── base_components.ex │ ├── cose_key.ex │ ├── icon_components.ex │ ├── registration_component.ex │ ├── support_component.ex │ └── webauthn_user.ex ├── mix.exs ├── mix.lock ├── package.json ├── priv └── static │ ├── authentication_hook.ts │ ├── browser_supports_passkey_autofill.ts │ ├── main.ts │ ├── registration_hook.ts │ ├── support_hook.ts │ └── utils.ts ├── templates ├── components │ ├── navigation │ │ ├── nav_link.html.heex │ │ └── navbar.html.heex │ ├── navigation_components.ex │ ├── passkey_components.ex │ └── passkeys │ │ ├── guidance.html.heex │ │ └── token_form.html.heex ├── contexts │ └── identity.ex ├── controllers │ ├── page_controller.ex │ └── session.ex ├── fixtures │ └── identity_fixtures.ex ├── live_views │ ├── authentication_live.ex │ ├── authentication_live.html.heex │ ├── registration_live.ex │ └── registration_live.html.heex ├── migrations │ ├── user_keys.exs │ ├── user_tokens.exs │ └── users.exs ├── misc │ └── user_token_cleaner.ex ├── schemas │ ├── user.ex │ ├── user_key.ex │ └── user_token.ex ├── session_hooks │ ├── assign_user.ex │ └── require_user.ex └── tests │ ├── authentication_live_test.exs │ ├── identity_test.exs │ └── registration_live_test.exs ├── test ├── support │ ├── component_case.ex │ ├── factory.ex │ └── test_endpoint.ex ├── test_helper.exs └── webauthn_components │ ├── authentication_component_test.exs │ ├── registration_component_test.exs │ └── support_component_test.exs └── webauthn_flows.md /.credo.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/.credo.exs -------------------------------------------------------------------------------- /.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/.formatter.exs -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/.github/pull_request_template.md -------------------------------------------------------------------------------- /.github/workflows/elixir.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/.github/workflows/elixir.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierrc.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/.prettierrc.yaml -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- 1 | erlang 27.2.2 2 | elixir 1.18.3-otp-27 3 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/.vscode/extensions.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/README.md -------------------------------------------------------------------------------- /config/config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/config/config.exs -------------------------------------------------------------------------------- /lib/mix/tasks/wac.install.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/mix/tasks/wac.install.ex -------------------------------------------------------------------------------- /lib/wac_gen/app_html.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/wac_gen/app_html.ex -------------------------------------------------------------------------------- /lib/wac_gen/components.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/wac_gen/components.ex -------------------------------------------------------------------------------- /lib/wac_gen/contexts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/wac_gen/contexts.ex -------------------------------------------------------------------------------- /lib/wac_gen/controllers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/wac_gen/controllers.ex -------------------------------------------------------------------------------- /lib/wac_gen/fixtures.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/wac_gen/fixtures.ex -------------------------------------------------------------------------------- /lib/wac_gen/generator_error.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/wac_gen/generator_error.ex -------------------------------------------------------------------------------- /lib/wac_gen/javascript.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/wac_gen/javascript.ex -------------------------------------------------------------------------------- /lib/wac_gen/live_views.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/wac_gen/live_views.ex -------------------------------------------------------------------------------- /lib/wac_gen/migrations.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/wac_gen/migrations.ex -------------------------------------------------------------------------------- /lib/wac_gen/misc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/wac_gen/misc.ex -------------------------------------------------------------------------------- /lib/wac_gen/router.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/wac_gen/router.ex -------------------------------------------------------------------------------- /lib/wac_gen/schemas.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/wac_gen/schemas.ex -------------------------------------------------------------------------------- /lib/wac_gen/session_hooks.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/wac_gen/session_hooks.ex -------------------------------------------------------------------------------- /lib/wac_gen/tests.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/wac_gen/tests.ex -------------------------------------------------------------------------------- /lib/webauthn_components/authentication_component.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/webauthn_components/authentication_component.ex -------------------------------------------------------------------------------- /lib/webauthn_components/base_components.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/webauthn_components/base_components.ex -------------------------------------------------------------------------------- /lib/webauthn_components/cose_key.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/webauthn_components/cose_key.ex -------------------------------------------------------------------------------- /lib/webauthn_components/icon_components.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/webauthn_components/icon_components.ex -------------------------------------------------------------------------------- /lib/webauthn_components/registration_component.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/webauthn_components/registration_component.ex -------------------------------------------------------------------------------- /lib/webauthn_components/support_component.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/webauthn_components/support_component.ex -------------------------------------------------------------------------------- /lib/webauthn_components/webauthn_user.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/lib/webauthn_components/webauthn_user.ex -------------------------------------------------------------------------------- /mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/mix.exs -------------------------------------------------------------------------------- /mix.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/mix.lock -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/package.json -------------------------------------------------------------------------------- /priv/static/authentication_hook.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/priv/static/authentication_hook.ts -------------------------------------------------------------------------------- /priv/static/browser_supports_passkey_autofill.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/priv/static/browser_supports_passkey_autofill.ts -------------------------------------------------------------------------------- /priv/static/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/priv/static/main.ts -------------------------------------------------------------------------------- /priv/static/registration_hook.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/priv/static/registration_hook.ts -------------------------------------------------------------------------------- /priv/static/support_hook.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/priv/static/support_hook.ts -------------------------------------------------------------------------------- /priv/static/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/priv/static/utils.ts -------------------------------------------------------------------------------- /templates/components/navigation/nav_link.html.heex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/components/navigation/nav_link.html.heex -------------------------------------------------------------------------------- /templates/components/navigation/navbar.html.heex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/components/navigation/navbar.html.heex -------------------------------------------------------------------------------- /templates/components/navigation_components.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/components/navigation_components.ex -------------------------------------------------------------------------------- /templates/components/passkey_components.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/components/passkey_components.ex -------------------------------------------------------------------------------- /templates/components/passkeys/guidance.html.heex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/components/passkeys/guidance.html.heex -------------------------------------------------------------------------------- /templates/components/passkeys/token_form.html.heex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/components/passkeys/token_form.html.heex -------------------------------------------------------------------------------- /templates/contexts/identity.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/contexts/identity.ex -------------------------------------------------------------------------------- /templates/controllers/page_controller.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/controllers/page_controller.ex -------------------------------------------------------------------------------- /templates/controllers/session.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/controllers/session.ex -------------------------------------------------------------------------------- /templates/fixtures/identity_fixtures.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/fixtures/identity_fixtures.ex -------------------------------------------------------------------------------- /templates/live_views/authentication_live.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/live_views/authentication_live.ex -------------------------------------------------------------------------------- /templates/live_views/authentication_live.html.heex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/live_views/authentication_live.html.heex -------------------------------------------------------------------------------- /templates/live_views/registration_live.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/live_views/registration_live.ex -------------------------------------------------------------------------------- /templates/live_views/registration_live.html.heex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/live_views/registration_live.html.heex -------------------------------------------------------------------------------- /templates/migrations/user_keys.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/migrations/user_keys.exs -------------------------------------------------------------------------------- /templates/migrations/user_tokens.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/migrations/user_tokens.exs -------------------------------------------------------------------------------- /templates/migrations/users.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/migrations/users.exs -------------------------------------------------------------------------------- /templates/misc/user_token_cleaner.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/misc/user_token_cleaner.ex -------------------------------------------------------------------------------- /templates/schemas/user.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/schemas/user.ex -------------------------------------------------------------------------------- /templates/schemas/user_key.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/schemas/user_key.ex -------------------------------------------------------------------------------- /templates/schemas/user_token.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/schemas/user_token.ex -------------------------------------------------------------------------------- /templates/session_hooks/assign_user.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/session_hooks/assign_user.ex -------------------------------------------------------------------------------- /templates/session_hooks/require_user.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/session_hooks/require_user.ex -------------------------------------------------------------------------------- /templates/tests/authentication_live_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/tests/authentication_live_test.exs -------------------------------------------------------------------------------- /templates/tests/identity_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/tests/identity_test.exs -------------------------------------------------------------------------------- /templates/tests/registration_live_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/templates/tests/registration_live_test.exs -------------------------------------------------------------------------------- /test/support/component_case.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/test/support/component_case.ex -------------------------------------------------------------------------------- /test/support/factory.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/test/support/factory.ex -------------------------------------------------------------------------------- /test/support/test_endpoint.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/test/support/test_endpoint.ex -------------------------------------------------------------------------------- /test/test_helper.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/test/test_helper.exs -------------------------------------------------------------------------------- /test/webauthn_components/authentication_component_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/test/webauthn_components/authentication_component_test.exs -------------------------------------------------------------------------------- /test/webauthn_components/registration_component_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/test/webauthn_components/registration_component_test.exs -------------------------------------------------------------------------------- /test/webauthn_components/support_component_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/test/webauthn_components/support_component_test.exs -------------------------------------------------------------------------------- /webauthn_flows.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liveshowy/webauthn_components/HEAD/webauthn_flows.md --------------------------------------------------------------------------------