Skip to content

Commit a61e49d

Browse files
docs(mfa): Add decrypt step to Complete Login and Error Handling examples
1 parent b94f46d commit a61e49d

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

examples/MFA.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,11 @@ server_client = ServerClient(
116116
try:
117117
access_token = await server_client.get_access_token()
118118
except MfaRequiredError as error:
119-
mfa_token = error.mfa_token
120119
print(f"MFA Required: {error.error_description}")
121-
122-
# The MFA context is automatically stored in the client
123-
# You can now use the MFA methods
120+
121+
# Decrypt the encrypted mfa_token before using MFA methods
122+
context = server_client.mfa.decrypt_mfa_token(error.mfa_token)
123+
mfa_token = context.mfa_token # Raw token for MFA API calls
124124
```
125125

126126
### MFA Token Encryption Design
@@ -711,7 +711,9 @@ async def login_with_mfa(server_client, store_options=None):
711711
return access_token
712712

713713
except MfaRequiredError as mfa_error:
714-
mfa_token = mfa_error.mfa_token
714+
# Decrypt the encrypted mfa_token from get_access_token()
715+
context = server_client.mfa.decrypt_mfa_token(mfa_error.mfa_token)
716+
mfa_token = context.mfa_token
715717

716718
# Determine flow: check if user needs to enroll or has authenticators
717719
authenticators = await server_client.mfa.list_authenticators(
@@ -755,7 +757,10 @@ async def handle_mfa_with_error_handling(server_client, store_options=None):
755757

756758
except MfaRequiredError as error:
757759
print(f"MFA Required: {error.error_description}")
758-
mfa_token = error.mfa_token
760+
761+
# Decrypt the encrypted mfa_token from get_access_token()
762+
context = server_client.mfa.decrypt_mfa_token(error.mfa_token)
763+
mfa_token = context.mfa_token
759764

760765
try:
761766
# Get authenticators

0 commit comments

Comments
 (0)