Skip to content
Open
Changes from 1 commit
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
3af68cc
Document requires_totp_mfa JWT claim
promptless[bot] Mar 23, 2026
b094812
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 17, 2026
c2e0383
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 17, 2026
0590fb3
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 17, 2026
5919d21
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 18, 2026
0818d01
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 18, 2026
9f87333
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 18, 2026
7c68af9
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 18, 2026
a36c3f0
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 18, 2026
0da31a0
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 18, 2026
58c3662
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 18, 2026
c7a8395
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 18, 2026
b51f444
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 18, 2026
6c8c214
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 19, 2026
838636c
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 19, 2026
4898daa
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 19, 2026
d7e55f1
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 19, 2026
fd97c9d
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 19, 2026
a00ad89
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 19, 2026
e7b49ab
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 19, 2026
0877a0e
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 19, 2026
5e0483d
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 19, 2026
8a6cb12
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 20, 2026
05ff0b0
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 20, 2026
183dec8
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 20, 2026
3e0c98f
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 20, 2026
124f7e7
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 21, 2026
06efd67
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 21, 2026
1f8f26c
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 21, 2026
5d24c72
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 21, 2026
71e3df0
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 22, 2026
1faaec4
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 23, 2026
32881f4
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 23, 2026
873fa62
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 23, 2026
28c96c6
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 24, 2026
04d35f5
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 24, 2026
0843d43
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 24, 2026
accd740
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 24, 2026
d76e5ee
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 24, 2026
1871277
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 24, 2026
fd02f18
Merge branch 'dev' into promptless/document-requires-totp-mfa-jwt-claim
promptless[bot] Apr 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/content/docs/(guides)/concepts/jwt.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ Stack Auth JWTs contain standardized headers and claims that power authenticatio
- **`project_id`**: Your Stack Auth project ID
- **`branch_id`**: The project branch (currently always `main`)
- **`refresh_token_id`**: ID of the associated refresh token
- **`requires_totp_mfa`**: Whether the user has TOTP multi-factor authentication enabled
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Citation: Based on commit c8b5168 "Add requires_totp_mfa to JWT". The commit added requires_totp_mfa to tokens.tsx, schema-fields.ts, and the example JWT in jwt.mdx, but didn't add a description in the Stack Auth Specific Claims section. The field indicates whether the user has TOTP MFA enabled, as shown in the e2e tests in access-token-refresh.test.ts.
View source

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Description diverges from internal OpenAPI spec

The added description says "Whether the user has TOTP multi-factor authentication enabled," but the internal OpenAPI spec in packages/stack-shared/src/interface/crud/users.ts describes this field as "Whether the user is required to use TOTP MFA to sign in". These are subtly different: a user could have TOTP configured without it being required at sign-in, or an admin could enforce MFA on users who already have TOTP set up. The claim name itself (requires_totp_mfa) and its SDK mapping to isMultiFactorRequired both reinforce the "required to use" semantics rather than simply "has enabled."

Consider aligning the docs with the existing internal description:

Suggested change
- **`requires_totp_mfa`**: Whether the user has TOTP multi-factor authentication enabled
- **`requires_totp_mfa`**: Whether the user is required to use TOTP MFA to sign in

- **`role`**: Always set to `authenticated` for valid users
- **`name`**: The user's display name (nullable)
- **`email`**: The user's primary email address (nullable)
Expand Down
Loading