{"id":16626947,"url":"https://github.com/erik1000/dashboard","last_synced_at":"2025-10-30T01:31:22.467Z","repository":{"id":39826403,"uuid":"356428303","full_name":"Erik1000/dashboard","owner":"Erik1000","description":"An example app implementing the webauthn passwordless authentication flow. See https://webauthn.guide/ ","archived":false,"fork":false,"pushed_at":"2023-02-08T04:19:54.000Z","size":252,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-03-09T02:27:17.756Z","etag":null,"topics":["fastapi","fido2","hardware-authenticator","login","passwordless","python","webauthn","yubico","yubikey"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Erik1000.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-04-10T00:17:17.000Z","updated_at":"2022-06-23T15:16:29.000Z","dependencies_parsed_at":"2023-01-31T04:35:11.516Z","dependency_job_id":null,"html_url":"https://github.com/Erik1000/dashboard","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erik1000%2Fdashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erik1000%2Fdashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erik1000%2Fdashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erik1000%2Fdashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Erik1000","download_url":"https://codeload.github.com/Erik1000/dashboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219856960,"owners_count":16556074,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fastapi","fido2","hardware-authenticator","login","passwordless","python","webauthn","yubico","yubikey"],"created_at":"2024-10-12T04:12:39.955Z","updated_at":"2025-10-30T01:31:17.199Z","avatar_url":"https://github.com/Erik1000.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Webauhn example app\n\nHi!\n\nThis is an example app which implements webauthn passwordless login using the [python-fido2](https://github.com/Yubico/python-fido2) library by Yubico.\nIt does only implement the authentication pages and two example pages for (not) authenticated users.\n\nThe name ``dashboard`` is just some simple name. It does not implement any dashboard like things.\n\n# Setup\n\nThe fido2 library does only accept \"secure\" connections from https. For local deployment you therefore need to create a self signed certificate. If openssl is installed, you can simply run the following command in the project root:\n```\nopenssl req -x509 -out localhost.crt -keyout localhost.key \\\n -newkey rsa:2048 -nodes -sha256 \\\n-subj '/CN=localhost' -extensions EXT -config \u003c( \\\nprintf \"[dn]\\nCN=localhost\\n[req]\\ndistinguished_name = dn\\n[EXT]\\nsubjectAltName=DNS:localhost\\nkeyUsage=digitalSignature\\nextendedKeyUsage=serverAuth\")\n```\n\nTo install the project you need to have [pipenv](https://github.com/pypa/pipenv) installed. If you have it installed, simply run ``pipenv install``.\n\nTo run the server with the self signed certificates (make sure they are named localhost.key and localhost.crt), type ``pipenv run web_secure``.\n\n**Note**: Firefox somehow has a bug when a PIN is required for the security key. Firefox will not ask for the PIN and nothing will happen if you touch you key. You are welcome to open a bug report about this at the [firefox bugtracker](https://bugzilla.mozilla.org/home). This example is tested on Chrome (probably every chromium based browser) and Safari.\n\nDon't forget to setup your ``.env`` file. Simply copy the ``env.example`` and put in your own data.\n\nAfter that run ``pipenv run migrations`` to setup the tables etc.\n\n# Note\n\nThis \"project\" is for learning purposes. Developing with the fido2 library by Yubico is kind of hard, because they don't have docs (except a bit in the code).\nThe fido2 library has some own example [here](https://github.com/Yubico/python-fido2/tree/master/examples) (using flask instead of fastapi).\n\n# Contribute\n\nIf you found errors or flaws or anything else, open an issue or a pull request. I would be happy :)\n\nTo prepare you environment, run ``pipenv install --dev`` and ``pipenv run precommit``. If you want to lint manually, run ``pipenv run lint``.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferik1000%2Fdashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferik1000%2Fdashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferik1000%2Fdashboard/lists"}