2026-07-07 21:52:11 +08:00
|
|
|
classDiagram
|
2026-07-09 11:50:19 +08:00
|
|
|
class MFAVerifyRequest {
|
|
|
|
|
+str otp_code
|
2026-07-07 21:52:11 +08:00
|
|
|
}
|
2026-07-09 11:50:19 +08:00
|
|
|
|
|
|
|
|
class MFAVerifyResponse {
|
|
|
|
|
+bool verified
|
|
|
|
|
+int expires_in
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class MFAVerifyBindResponse {
|
|
|
|
|
+bool verified
|
|
|
|
|
+int expires_in
|
|
|
|
|
+str token
|
2026-07-07 21:52:11 +08:00
|
|
|
+str user_id
|
|
|
|
|
+str name
|
|
|
|
|
+str role
|
|
|
|
|
}
|
2026-07-09 11:50:19 +08:00
|
|
|
|
|
|
|
|
class MFABindStartResponse {
|
2026-07-07 21:52:11 +08:00
|
|
|
+str secret
|
2026-07-09 11:50:19 +08:00
|
|
|
+str otpauth_url
|
|
|
|
|
+str qr_code_base64
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class MFAStatusResponse {
|
|
|
|
|
+bool bound
|
2026-07-07 21:52:11 +08:00
|
|
|
+bool enabled
|
|
|
|
|
+datetime last_verified_at
|
|
|
|
|
}
|
2026-07-09 11:50:19 +08:00
|
|
|
|
|
|
|
|
MFAVerifyRequest --> MFAVerifyResponse : "mfa_enabled=True → 仅验证"
|
|
|
|
|
MFAVerifyRequest --> MFAVerifyBindResponse : "mfa_enabled=False → 绑定+签发token"
|