Skip to content

Add passkeys to your Svelte and FastAPI application using the Corbado passkey-first authentication solution.

Notifications You must be signed in to change notification settings

corbado/passkeys-svelte-fastapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

GitHub Repo Cover

Svelte and FastAPI Passkey Example App

This is a sample implementation of the Corbado passkeys-first authentication solution using Svelte and FastAPI. The following packages are being used:

File structure

  • frontend: Separate directory for the Svelte frontend
  • frontend/.env.example: Example file for environment variables
  • frontend/src/routes: Contains all routes used in the frontend
  • frontend/src/router/index.ts: Contains the route definitions
  • frontend/src/stores/user.svelte.ts: Global store for user data from Corbado and our own backend
  • backend: Separate directory for the FastAPI backend
  • backend/.env.example: Example file for environment variables
  • backend/app/main.py: Entry point for the FastAPI app
  • backend/app/core/config.py: Configuration file for the Express app
  • backend/app/utils: Collection of utility functions, e.g. helper functions for authentication
  • backend/app/routes: Directory configuring the routes for the app
  • backend/app/db: Database configuration and queries

Setup

Prerequisites

Please follow the steps in Getting started to create and configure a project in the Corbado developer panel.

You need to have Node and npm installed to run it.

Configure environment variables

Use the values you obtained in Prerequisites to configure the following variables inside a .env file you create in frontend and backend directories respectively:

Backend

The backend needs an api secret to authenticate with the Corbado backend API.

CORBADO_PROJECT_ID=pro-XXX
CORBADO_API_SECRET=corbado1_XXX
CORBADO_FRONTEND_API=https://{$CORBADO_PROJECT_ID}.frontendapi.cloud.corbado.io
CORBADO_BACKEND_API=https://backendapi.cloud.corbado.io

Frontend

The frontend needs the project ID and the backend base URL.

VITE_CORBADO_PROJECT_ID=pro-XXX
VITE_BACKEND_BASE_URL=http://localhost:3001

Usage

Run the project locally

On macOS and Linux, run the following command in the root directory

(cd frontend && npm install)
(cd backend && python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt && alembic upgrade head)

to install all dependencies and initialize the database.

Activating the virtual environment will be different for Windows users.

Finally, you can run the project locally by individually starting up the frontend and backend.

Running frontend and backend individually

In one terminal session, run the following command in the frontend directory:

npm run dev

In another terminal session, run the following command in the backend directory with an activated virtual environment:

fastapi dev --port 3001

Troubleshooting

If you encounter any issues regarding imports in the backend, make sure to set your python path:

export PYTHONPATH=$(pwd)

Passkeys support