Skip to main content

A minimal FastAPI service for creating, verifying, and revoking user-scoped API tokens. Uses Argon2 hashing and PostgreSQL for secure token management.

Project description

TokenKeeper API

TokenKeeper is a secure, FastAPI-based service for managing and verifying personal access tokens. It integrates with AWS Cognito for user authentication and uses PostgreSQL for persistent storage. Tokens are hashed with Argon2 and optionally support expiration, revocation, and last-used tracking.

Features

  • 🔐 Secure token generation using Argon2 hashing
  • 📅 Optional token expiration and usage tracking
  • ✅ Verification and revocation of tokens
  • 🧾 List non-revoked, non-expired tokens
  • 🪪 Cognito-based user authentication
  • 🗃️ PostgreSQL + SQLAlchemy (async) backend

API Endpoints

  • POST /token — Create a new token
  • POST /token/verify — Verify token validity
  • POST /token/revoke — Revoke a token by name
  • GET /token — List current user’s active tokens

Requirements

  • Python 3.12+
  • PostgreSQL
  • AWS Cognito User Pool
  • asyncpg, sqlalchemy, fastapi, passlib[argon2], cognito-jwt-verifier

Getting Started

  1. Update your database URL in db.py:
DATABASE_URL = "postgresql+asyncpg://user:password@localhost/tokenkeeper"
  1. Set up your Cognito issuer and client ID in auth.py:
ISSUER = "https://cognito-idp.<region>.amazonaws.com/<user_pool_id>"
CLIENT_IDS = ["<app_client_id>"]
  1. Run the FastAPI app:
uvicorn tokenkeeper.main:app --reload

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tokenkeeper_api-0.0.4.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tokenkeeper_api-0.0.4-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file tokenkeeper_api-0.0.4.tar.gz.

File metadata

  • Download URL: tokenkeeper_api-0.0.4.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for tokenkeeper_api-0.0.4.tar.gz
Algorithm Hash digest
SHA256 782496b775aff42a9aca0b1ec4ce19f5451c001757e31b3ffe0eee57d699afbd
MD5 2f18e7437ce33332d602904fe735357e
BLAKE2b-256 d9bc27e921112ddf38f6ab9f5420397e6bbba155236edac97930548a0d0b548b

See more details on using hashes here.

File details

Details for the file tokenkeeper_api-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for tokenkeeper_api-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a846d1cca8e76e7e25ad94d6ff1046b87b89206c14e12c0ddd2a529b98be3a78
MD5 f299e9b05c3e66922f39a125478299cc
BLAKE2b-256 6a25494251cd084ef2b15acb2985966d08647d0092c1e48be6e36df2aa4679cc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page