AuthifyPass

v1

AuthifyPass is an open-source and public API designed to simplify secure Two-Factor Authentication (2FA) integration for developers. It provides a trusted backend service to generate and validate TOTP codes (Time-based One-Time Passwords), compatible with standard authenticator apps — while ensuring total privacy for end users. Unlike traditional providers (such as Google or Microsoft Authenticator), AuthifyPass offers a privacy-first approach: when developers register users in the system, no personal data or identifiers are ever stored. Instead, only hashed identifiers and shared secrets are maintained, meaning AuthifyPass has no way to trace real user information.

[
  {
    "Name": "client",
    "Endpoints": [
      {
        "Id": "lixzSDeDy8D9RHcRdNheHg",
        "HttpMethod": "POST",
        "Route": "client/",
        "Summary": "POST client/",
        "Description": "[IRegisterClientController] controller",
        "Parameters": [
          {
            "Name": "data",
            "Type": "RegisterClientDto",
            "IsFromBody": true,
            "Source": "Body",
            "IsRequired": true,
            "Description": "Parameter",
            "Schema": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "example": ""
                },
                "email": {
                  "type": "string",
                  "example": ""
                },
                "password": {
                  "type": "string",
                  "example": ""
                },
                "code": {
                  "type": "string",
                  "example": ""
                }
              },
              "example": {
                "name": "string",
                "email": "string",
                "password": "string",
                "code": "string"
              }
            },
            "IsValueParameter": true,
            "IsCollection": false,
            "CollectionElementType": null
          }
        ],
        "ReturnType": "RegisterClientResponseDto",
        "ReturnSchema": {
          "type": "object",
          "properties": {
            "clientId": {
              "type": "string",
              "example": ""
            },
            "sharedSecret": {
              "type": "string",
              "example": ""
            },
            "message": {
              "type": "string",
              "example": ""
            }
          },
          "example": {
            "clientId": "string",
            "sharedSecret": "string",
            "message": "string"
          }
        },
        "ExampleJson": "{\r\n  \u0022clientId\u0022: \u0022string\u0022,\r\n  \u0022sharedSecret\u0022: \u0022string\u0022,\r\n  \u0022message\u0022: \u0022string\u0022\r\n}"
      }
    ],
    "Children": [
      {
        "Name": "id",
        "Endpoints": [],
        "Children": [
          {
            "Name": "client",
            "Endpoints": [
              {
                "Id": "wjLWyqfVGuYro21O7Z2qFA",
                "HttpMethod": "DELETE",
                "Route": "client/{id}",
                "Summary": "DELETE client/{id}",
                "Description": "[IDeleteClientController] controller",
                "Parameters": [
                  {
                    "Name": "id",
                    "Type": "String",
                    "IsFromBody": false,
                    "Source": "Path",
                    "IsRequired": true,
                    "Description": "Parameter",
                    "Schema": null,
                    "IsValueParameter": true,
                    "IsCollection": false,
                    "CollectionElementType": null
                  }
                ],
                "ReturnType": "Void",
                "ReturnSchema": {
                  "type": "object",
                  "properties": {},
                  "example": {}
                },
                "ExampleJson": "{}"
              }
            ],
            "Children": []
          }
        ]
      }
    ]
  },
  {
    "Name": "user",
    "Endpoints": [
      {
        "Id": "x3mhzQa70x9cMjgr_f_1NA",
        "HttpMethod": "POST",
        "Route": "user/",
        "Summary": "POST user/",
        "Description": "[IRegisterUserInputPort] input",
        "Parameters": [
          {
            "Name": "data",
            "Type": "RegisterUserClientDto",
            "IsFromBody": true,
            "Source": "Body",
            "IsRequired": true,
            "Description": "Parameter",
            "Schema": {
              "type": "object",
              "properties": {
                "clientId": {
                  "type": "string",
                  "example": ""
                },
                "userId": {
                  "type": "string",
                  "example": ""
                },
                "userName": {
                  "type": "string",
                  "example": ""
                }
              },
              "example": {
                "clientId": "string",
                "userId": "string",
                "userName": "string"
              }
            },
            "IsValueParameter": true,
            "IsCollection": false,
            "CollectionElementType": null
          }
        ],
        "ReturnType": "RegisterUserClientResponseDto",
        "ReturnSchema": {
          "type": "object",
          "properties": {
            "sharedkey": {
              "type": "string",
              "example": ""
            },
            "imageSVG": {
              "type": "string",
              "example": ""
            }
          },
          "example": {
            "sharedkey": "string",
            "imageSVG": "string"
          }
        },
        "ExampleJson": "{\r\n  \u0022sharedkey\u0022: \u0022string\u0022,\r\n  \u0022imageSVG\u0022: \u0022string\u0022\r\n}"
      },
      {
        "Id": "dYuKrQLrCR0lZlgb5B-elQ",
        "HttpMethod": "POST",
        "Route": "user/validate-code",
        "Summary": "POST user/validate-code",
        "Description": "[IValidateUserCodeInputPort] input",
        "Parameters": [
          {
            "Name": "data",
            "Type": "ValidateUserCodeDto",
            "IsFromBody": true,
            "Source": "Body",
            "IsRequired": true,
            "Description": "Parameter",
            "Schema": {
              "type": "object",
              "properties": {
                "clientId": {
                  "type": "string",
                  "example": ""
                },
                "userId": {
                  "type": "string",
                  "example": ""
                },
                "userCode": {
                  "type": "string",
                  "example": ""
                }
              },
              "example": {
                "clientId": "string",
                "userId": "string",
                "userCode": "string"
              }
            },
            "IsValueParameter": true,
            "IsCollection": false,
            "CollectionElementType": null
          }
        ],
        "ReturnType": "Boolean",
        "ReturnSchema": {
          "type": "boolean",
          "example": false
        },
        "ExampleJson": "false"
      }
    ],
    "Children": [
      {
        "Name": "id",
        "Endpoints": [],
        "Children": [
          {
            "Name": "user",
            "Endpoints": [
              {
                "Id": "GJNE0vW5sovRJmWLeYUmGA",
                "HttpMethod": "DELETE",
                "Route": "user/{id}",
                "Summary": "DELETE user/{id}",
                "Description": "[IDeleteUserController] controller",
                "Parameters": [
                  {
                    "Name": "id",
                    "Type": "String",
                    "IsFromBody": false,
                    "Source": "Path",
                    "IsRequired": true,
                    "Description": "Parameter",
                    "Schema": null,
                    "IsValueParameter": true,
                    "IsCollection": false,
                    "CollectionElementType": null
                  }
                ],
                "ReturnType": "Void",
                "ReturnSchema": {
                  "type": "object",
                  "properties": {},
                  "example": {}
                },
                "ExampleJson": "{}"
              }
            ],
            "Children": []
          }
        ]
      }
    ]
  }
]