Skip to main content

passportd

认证、授权、统一登录 — 基于 Flask 的 SSO 单点登录服务。

PyPI Python License Docs

核心功能

  • 本地账号系统:支持用户名、手机号、邮箱注册与登录
  • WebAuthn Passkey:支持指纹/面容/PIN 码免密登录,兼容 Windows Hello、Apple Touch ID、YubiKey、Vaultwarden 等
  • OAuth2 第三方登录:内置 GitHub、Gitee、Weibo、QQ OAuth2 登录插件
  • OpenID Connect Provider:支持 OIDC Server 模式,可作为独立 SSO 服务
  • 插件扩展:基于 Flask-PluginKit 的插件架构,方便扩展更多登录方式
  • 多数据库支持:SQLite(开发) / MySQL / PostgreSQL(生产)
  • JWT 认证:支持 HMAC-SHA256 和 RS256 双算法 JWT 签名
  • RESTful API:提供完整的注册、登录、用户信息、OIDC 客户端管理接口

快速开始

pip 安装

# 安装
pip install passportd

# 确保 Redis 已启动

# 开发模式启动
passportd run

# 生产模式启动
passportd start

访问 http://localhost:10030/ 即可看到登录页面。

Docker 运行

# 拉取镜像
docker pull staugur/passportd:latest

# 启动容器(需要先启动 Redis)
docker run -d \
  --name passportd \
  -p 10030:10030 \
  -e PASSPORT_REDIS_URI="redis://:pwd@redis:6379/0" \
  -e PASSPORT_DB_URI="sqlite:///app/data/passportd.db" \
  -e PASSPORT_ENV="production" \
  -v passportd-data:/app/data \
  staugur/passportd:latest

也可以通过 docker-compose.yml 一键启动(包含 Redis):

version: "3.8"
services:
  redis:
    image: redis:7-alpine
    restart: unless-stopped
    volumes:
      - redis-data:/data

  passportd:
    image: staugur/passportd:latest
    restart: unless-stopped
    ports:
      - "10030:10030"
    environment:
      - PASSPORT_ENV=production
      - PASSPORT_REDIS_URI=redis://redis:6379/0
      - PASSPORT_DB_URI=sqlite:///app/data/passportd.db
    volumes:
      - passportd-data:/app/data
    depends_on:
      - redis

volumes:
  redis-data:
  passportd-data:

文档

完整文档请访问 passportd.readthedocs.io

本地构建文档:

pip install -r requirements/docs.txt
cd docs && make html

许可证

Apache License 2.0

备注

沿用 1.x 设计思路,使用 OIDC 标准协议重构实现,除核心代码外大部分使用 AI 生成。

如从 1.x 迁移,可使用 tools 脚本。

Download files

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

Source Distribution

passportd-2.4.1.tar.gz (2.6 MB view details)

Uploaded Source

Built Distribution

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

passportd-2.4.1-py3-none-any.whl (2.6 MB view details)

Uploaded Python 3

File details

Details for the file passportd-2.4.1.tar.gz.

File metadata

  • Download URL: passportd-2.4.1.tar.gz
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for passportd-2.4.1.tar.gz
Algorithm Hash digest
SHA256 0e9f564b5b2597894edeaa63f94958a82f13404a107517d73422e68371be3494
MD5 2914b62fff4aabd51fa58173ba61f37e
BLAKE2b-256 6a613cda04ff6d26e49c5b89db44e43807ca0823bbb6dfb39e09fd86f0bfa92a

See more details on using hashes here.

Provenance

The following attestation bundles were made for passportd-2.4.1.tar.gz:

Publisher: publish.yml on staugur/passportd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file passportd-2.4.1-py3-none-any.whl.

File metadata

  • Download URL: passportd-2.4.1-py3-none-any.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for passportd-2.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 02a111f61d4affe4cf36c2b37eb0261c3474551758e1a15ac05506a79ca51245
MD5 87fc5ec776e4a09c3d896f6b7f0dda34
BLAKE2b-256 e0ea8ff8fa07f6e40822062d533d63ca0fe699db00f04e42ce074c05c4cf7f12

See more details on using hashes here.

Provenance

The following attestation bundles were made for passportd-2.4.1-py3-none-any.whl:

Publisher: publish.yml on staugur/passportd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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