auth-framework 0.5.0-rc18

A comprehensive, production-ready authentication and authorization framework for Rust applications
Documentation
# Multi-Factor Authentication Endpoints

setup:
    post:
        tags:
            - MFA
        summary: Start TOTP enrollment
        operationId: setupMFA
        security:
            - bearerAuth: []
        responses:
            "200":
                description: MFA setup information generated
                content:
                    application/json:
                        schema:
                            allOf:
                                - $ref: "../schemas/common.yaml#/ApiResponse"
                                - type: object
                                  properties:
                                      data:
                                          $ref: "../schemas/mfa.yaml#/MFASetupResponse"
            "401":
                $ref: "../components/responses.yaml#/Unauthorized"

verify:
    post:
        tags:
            - MFA
        summary: Complete MFA enrollment
        description: Login-time MFA completion happens on POST /auth/login using challenge_id and mfa_code. This endpoint is for enrollment verification only.
        operationId: verifyMFA
        security:
            - bearerAuth: []
        requestBody:
            required: true
            content:
                application/json:
                    schema:
                        $ref: "../schemas/mfa.yaml#/MFAVerifyRequest"
        responses:
            "200":
                description: MFA enabled successfully
                content:
                    application/json:
                        schema:
                            $ref: "../schemas/common.yaml#/ApiResponse"
            "400":
                $ref: "../components/responses.yaml#/BadRequest"
            "401":
                $ref: "../components/responses.yaml#/Unauthorized"

disable:
    post:
        tags:
            - MFA
        summary: Disable MFA
        operationId: disableMFA
        security:
            - bearerAuth: []
        requestBody:
            required: true
            content:
                application/json:
                    schema:
                        $ref: "../schemas/mfa.yaml#/DisableMFARequest"
        responses:
            "200":
                description: MFA disabled successfully
                content:
                    application/json:
                        schema:
                            $ref: "../schemas/common.yaml#/ApiResponse"
            "400":
                $ref: "../components/responses.yaml#/BadRequest"
            "401":
                $ref: "../components/responses.yaml#/Unauthorized"

status:
    get:
        tags:
            - MFA
        summary: Get MFA status
        operationId: getMFAStatus
        security:
            - bearerAuth: []
        responses:
            "200":
                description: MFA status retrieved
                content:
                    application/json:
                        schema:
                            allOf:
                                - $ref: "../schemas/common.yaml#/ApiResponse"
                                - type: object
                                  properties:
                                      data:
                                          $ref: "../schemas/mfa.yaml#/MFAStatusResponse"
            "401":
                $ref: "../components/responses.yaml#/Unauthorized"

regenerateBackupCodes:
    post:
        tags:
            - MFA
        summary: Replace backup codes
        operationId: regenerateBackupCodes
        security:
            - bearerAuth: []
        responses:
            "200":
                description: New backup codes generated
                content:
                    application/json:
                        schema:
                            allOf:
                                - $ref: "../schemas/common.yaml#/ApiResponse"
                                - type: object
                                  properties:
                                      data:
                                          $ref: "../schemas/mfa.yaml#/BackupCodeList"
            "401":
                $ref: "../components/responses.yaml#/Unauthorized"

verifyBackupCode:
    post:
        tags:
            - MFA
        summary: Verify a one-time backup code
        operationId: verifyBackupCode
        security:
            - bearerAuth: []
        requestBody:
            required: true
            content:
                application/json:
                    schema:
                        $ref: "../schemas/mfa.yaml#/BackupCodeVerifyRequest"
        responses:
            "200":
                description: Backup code verified
                content:
                    application/json:
                        schema:
                            $ref: "../schemas/common.yaml#/ApiResponse"
            "400":
                $ref: "../components/responses.yaml#/BadRequest"
            "401":
                $ref: "../components/responses.yaml#/Unauthorized"