Always serialize the "secrets" field in the credentials DTO, as an empty list when the client has no secrets, and make it a required property in the frontend type so consumers never have to handle a missing value. The federated credentials card now hands its callback only the federated identities it owns, and the page merges them into the client credentials, so saving them no longer drops the secrets from the local client object. Also drop the field comments on OidcClientSecret that restated the code, keeping only the note about the prefix being empty for migrated secrets. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gcdcb75uaMU5UE1G2niL3L
Pocket ID is an easy-to-use OpenID Connect Certified™ and OAuth 2.0 provider that lets users sign in to your applications with passkeys.
→ Try out the Demo
The goal of Pocket ID is to be a simple and easy-to-use. There are other self-hosted OIDC and OAuth 2.0 providers like Keycloak or ORY Hydra but they are often too complex for simple use cases.
Additionally, what makes Pocket ID special is that it only supports passkey authentication, which means you don’t need a password. Some people might not like this idea at first, but I believe passkeys are the future, and once you try them, you’ll love them. For example, you can now use a physical Yubikey to sign in to all your self-hosted services easily and securely.
Setup
Pocket ID can be set up in multiple ways. The easiest and recommended way is to use Docker.
Visit the documentation for the setup guide and more information.
Contribute
You're very welcome to contribute to Pocket ID! Please follow the contribution guide to get started.