https://github.com/atinux/nuxt-todo-passkeys
A todo app with passkeys (WebAuthn) authentication with Nuxt.
https://github.com/atinux/nuxt-todo-passkeys
nuxt nuxthub passkeys vue webauthn
Last synced: 3 months ago
JSON representation
A todo app with passkeys (WebAuthn) authentication with Nuxt.
- Host: GitHub
- URL: https://github.com/atinux/nuxt-todo-passkeys
- Owner: atinux
- License: mit
- Created: 2024-09-30T09:29:39.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-31T10:41:08.000Z (over 1 year ago)
- Last Synced: 2025-06-08T11:48:14.115Z (about 1 year ago)
- Topics: nuxt, nuxthub, passkeys, vue, webauthn
- Language: TypeScript
- Homepage: https://todo-passkeys.nuxt.dev
- Size: 752 KB
- Stars: 40
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Manage your Todos using Passkeys
A demonstration using [Nuxt](https://nuxt.com) with server-side rendering on the edge, authentication and database querying using [Cloudflare D1](https://developers.cloudflare.com/d1/).
This demo is a fork of [atidone](https://github.com/atinux/atidone) but using Passkeys for authentication with [nuxt-auth-utils](https://github.com/atinux/nuxt-auth-utils).
## Features
- [Server-Side Rendering on the Edge](https://nuxt.com/blog/nuxt-on-the-edge)
- Passkeys authentication backed-in using [nuxt-auth-utils](https://github.com/atinux/nuxt-auth-utils)
- Leverage [Cloudflare D1](https://developers.cloudflare.com/d1/) as database and [drizzle ORM](https://orm.drizzle.team/) using [`hubDatabase()`](https://hub.nuxt.com/docs/storage/database)
- User interface made with [Nuxt UI](https://ui.nuxt.com)
- Embed [Drizzle Studio](https://orm.drizzle.team/drizzle-studio/overview/) in the [Nuxt DevTools](https://devtools.nuxt.com)
## Live demo
https://todo-passkeys.nuxt.dev
## Setup
Make sure to install the dependencies using [pnpm](https://pnpm.io/):
```bash
pnpm i
```
To create sealed sessions, you also need to add `NUXT_SESSION_PASSWORD` in the `.env` with at least 32 characters:
```bash
NUXT_SESSION_PASSWORD="your-super-long-secret-for-session-encryption"
```
If you don't specify it, one will be generated for you.
## Development
Start the development server on http://localhost:3000
```bash
npm run dev
```
In the Nuxt DevTools, you can see your tables by clicking on the Hub Database tab:
https://github.com/atinux/atidone/assets/904724/7ece3f10-aa6f-43d8-a941-7ca549bc208b
## Deploy
You can deploy this project on your Cloudflare account for free and with zero configuration using [NuxtHub](https://hub.nuxt.com).
```bash
npx nuxthub deploy
```
It's also possible to leverage Cloudflare Pages CI for deploying, learn more about the different options on https://hub.nuxt.com/docs/getting-started/deploy
## Remote Storage
Once you deployed your project, you can connect to your remote database locally running:
```bash
pnpm dev --remote
```
Learn more about remote storage on https://hub.nuxt.com/docs/getting-started/remote-storage
## License
[MIT License](./LICENSE)