-
Notifications
You must be signed in to change notification settings - Fork 41
feat: webauthn #583
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
namsnath
wants to merge
51
commits into
0.30
Choose a base branch
from
feat/webauthn/base
base: 0.30
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
feat: webauthn #583
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
385d297
to
76169e2
Compare
- Requires changes to make types compatible with older objects
- Uses dataclasses - Makes types compatible with webauthn - Moves `types` module to `types/base.py` - Re-exported from `types.base` to maintain backward compatibility - Updates imports for `types` module - Moves response classes to `types/response.py`
- Uses a common type for all kwargs - Uses specific types for various code paths - Adds additional checks for input types
- Pending: Update utils used in the endpoint
- Removes `dataclasses-json` dep
- Adds AccountInfoInput class - Updates usages in some functions - Implements remaining api implementation functions - Implements EmailDelivery package - Updates API types to work with email delivery functions - Splits WebauthnConfig into normalised and input classes - Adds webauthn utils module
- Moves auth_utils imports out of type_checking block - this is needed at runtime - Adds `__future__` annotations to api functions - Converts config classes to dataclasses - Adds APIOptions model rebuild to webauthn init file
- Exposes a `sync` function to call function synchronously
- Adds missing `rp_id` to `SignInOptionsPOSTResponse` - Updates body parsing for `register_options_api` to handle optional fields - Updates types to match CDI - Adds defaults for literal types with one option - Adds `None` defaults for optional types - Adds serializers for `User` and `RecipeUserId` - Implements remaining functions from Node SDK - Changes `config` input in `RecipeImplementation` to be a property rather than a function - Adds `to_json`/`from_json` calls to (de)serialize various objects for use - Handles `User` and `RecipeUserId` parsing for models manually - Adds missing imports
- Excludes optional fields from query data
- Allows testing for edge-cases
- Lets validation errors come from the core
- update setup version
5778619
to
d6590e3
Compare
sattvikc
requested changes
May 23, 2025
- Remove functions from `__init__` that are not exposed in Node - Rename `Api` to `API` (Interface/Implementation) - Move `UserContext` type alias to common types module - Move error map util to common utils module
📝 Documentation updates detected! New suggestion: Update WebAuthn/Passkeys documentation for Python SDK support |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of change
Adds Webauthn (Passkeys) support
/api/webauthn/email/exists
- Check if email exists in system/api/webauthn/options/register
- Handle registration options/api/webauthn/options/signin
- Handle sign-in options/api/webauthn/signin
- Handle WebAuthn sign-in/api/webauthn/signup
- Handle WebAuthn sign-up/api/user/webauthn/reset
- Handle account recovery/api/user/webauthn/reset/token
- Generate recovery tokenscredential_id
AccountInfo
type toAccountInfoInput
with WebAuthn fieldshas_same_webauthn_info_as
method for credential comparison4.1
Breaking Changes
5.2
to5.3
AccountInfo
toAccountInfoInput
in various methodscredential_id
, while the Webauthn login method contains an array ofcredential_ids
supertokens_python.asyncio.list_users_by_account_info
supertokens_python.syncio.list_users_by_account_info
supertokens_python.recipe.accountlinking.interface.RecipeInterface.list_users_by_account_info
supertokens_python.recipe.accountlinking.recipe_implementation.RecipeImplementation.list_users_by_account_info
Related issues
Test Plan
(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work. Bonus points for screenshots and videos!)
Documentation changes
(If relevant, please create a PR in our docs repo, or create a checklist here highlighting the necessary changes)
Checklist for important updates
coreDriverInterfaceSupported.json
file has been updated (if needed)supertokens_python/constants.py
frontendDriverInterfaceSupported.json
file has been updated (if needed)setup.py
supertokens_python/constants.py
git tag
) in the formatvX.Y.Z
, and then find the latest branch (git branch --all
) whoseX.Y
is greater than the latest released tag.supertokens_python/utils.py
file to include that in theFRAMEWORKS
variablesyncio
/asyncio
functions are consistent.tests/sessions/test_access_token_version.py
to account for any new claims that are optional or omitted by the coreRemaining TODOs for this PR