{"id":21590239,"url":"https://github.com/corbado/passkey-tutorial","last_synced_at":"2025-04-07T12:09:55.320Z","repository":{"id":211403553,"uuid":"729021008","full_name":"corbado/passkey-tutorial","owner":"corbado","description":"Repository for Passkey Tutorial using Node.js (Express), JavaScript, MySQL \u0026 SimpleWebAuthn","archived":false,"fork":false,"pushed_at":"2025-03-19T11:16:23.000Z","size":100,"stargazers_count":90,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-31T11:03:44.713Z","etag":null,"topics":["express","faceid","fido2","javascript","mysql","nodejs","passkey","passkeys","simplewebauthn","touchid","typescript","webauthn"],"latest_commit_sha":null,"homepage":"https://www.corbado.com/blog/passkey-tutorial-how-to-implement-passkeys","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/corbado.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-08T08:17:12.000Z","updated_at":"2025-02-24T15:36:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"2f59f242-2795-40b8-8c85-7fe41f301a07","html_url":"https://github.com/corbado/passkey-tutorial","commit_stats":null,"previous_names":["corbado/passkey-tutorial"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corbado%2Fpasskey-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corbado%2Fpasskey-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corbado%2Fpasskey-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corbado%2Fpasskey-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/corbado","download_url":"https://codeload.github.com/corbado/passkey-tutorial/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247648977,"owners_count":20972945,"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":["express","faceid","fido2","javascript","mysql","nodejs","passkey","passkeys","simplewebauthn","touchid","typescript","webauthn"],"created_at":"2024-11-24T16:17:12.617Z","updated_at":"2025-04-07T12:09:55.302Z","avatar_url":"https://github.com/corbado.png","language":"TypeScript","readme":"# Passkey Tutorial: Node.js (Express), JavaScript, MySQL \u0026 SimpleWebAuthn\n\n## Introduction\n\nWelcome to repository of the [Passkey Tutorial](https://www.corbado.com/blog/passkey-tutorial-how-to-implement-passkeys)! This [tutorial](https://www.corbado.com/blog/passkey-tutorial-how-to-implement-passkeys) showcases **how to implement passkeys in a simple web app**, thus offering a more secure alternative to traditional passwords. By the end of this tutorial, you will have implemented an **end-to-end passkey** authentication system **without relying on third-party passkey authentication providers**.\n\n## Prerequisites\nIn the tutorial, we use the following tools and technologies, so having some basic knowledge in these areas is helpful:\n\n- **Node.js (Express)**: Utilizes TypeScript for robust backend development with the Express framework.\n- **Vanilla HTML \u0026 JavaScript/TypeScript**: Implements a straightforward and effective frontend.\n- **MySQL**: Manages user data and passkey credentials securely.\n- **SimpleWebAuthn**: Handles WebAuthn operations for registration and authentication.\n\n## Features\n\nIn this passkey tutorial project, we implement the two basic WebAuthn / passkey cereomonies to sign-up / register and log in / authenticate with a passkey.\n\n### Passkey Sign-Up\nThe passkey sign-up enables users to create new accounts and generate passkeys. Here is the corresponding passkey register flow chart:\n![Passkey Sign-Up Flow Chart](https://github.com/corbado/passkey-tutorial/assets/18458907/01a471f5-59d3-4902-9e32-c5dc68695885)\n\n\n### Passkey Login\nThe passkey login facilitates a secure login using the created passkeys. Here is the corresponding passkey login flow chart:\n![Passkey Login Flow Chart](https://github.com/corbado/passkey-tutorial/assets/18458907/daa92c7c-b528-42b0-9912-8df1b3847a95)\n\n\n## How to Use\n\n### Step 1: Clone the Repository\n\nClone the repository to your local machine:\n\n```sh\ngit clone https://github.com/corbado/passkeys-tutorial\n\n```\n\n### Step 2: Run the Project\n\nStart the project using Docker:\n\n```sh\ndocker compose up -d\n```\n\n## License\n\nThis project is licensed under the MIT License.\n\n## Support \u0026 Feedback\n\n### Report an issue\n\nIf you encounter any bugs or have suggestions, please [open an issue](https://github.com/corbado/passkey-tutorial/issues/new).\n\n### Slack channel\n\nJoin our Slack channel to discuss questions or ideas with the Corbado team and other developers.\n\n[![Slack](https://img.shields.io/badge/slack-join%20chat-brightgreen.svg)](https://join.slack.com/t/corbado/shared_invite/zt-2g4etyvxi-otKksMmhMHwWK19aCbhODQ)\n\n### Email\n\nYou can also reach out to us via email at vincent.delitz@corbado.com.\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorbado%2Fpasskey-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcorbado%2Fpasskey-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorbado%2Fpasskey-tutorial/lists"}