GenAuth DocsDocuments
Concepts
User Guide
Development Integration
AgentAuth
Metadata
Development Integration
Multi-tenant (beta)
Console Documentation
Multi-tenant Console
Tenant Console
Saas Application Demo
Concepts
User Guide
Development Integration
AgentAuth
Metadata
Development Integration
Multi-tenant (beta)
Console Documentation
Multi-tenant Console
Tenant Console
Saas Application Demo
Old version
  • Single Page Web Application

  • Mobile and Client Applications

    • Android

    • C#

    • Flutter

    • iOS

      • Quick Start
      • Hosted Pages
      • Components

      • APIs

        • 核心认证 API
        • 标准协议 API
        • 多因素认证 API
        • 扫码认证 API
        • 工具类 API
      • Social Login

      • Typical Scenarios

      • Private Deployment
    • React Native
  • Standard Web Application

  • Framework Integration

  • Others

  1. Development Integration
  2. /
  3. Mobile and Client Applications
  4. /
  5. iOS
  6. /
  7. APIs
  8. /
  9. 多因素认证 API

¶ 多因素认证 API

Update time: 2025-07-23 07:34:21
Edit

¶ MFA 检测

检测手机号或者邮箱是否可以被用作 MFA

func mfaCheck(phone: String?, email: String?, completion: @escaping(Int, String?, Bool?) -> Void)

参数

  • phone 被检测的手机号。可以为空
  • email 被检测的邮箱。可以为空

示例

AuthClient().mfaCheck(phone: "188xxxx8888", email: nil) { code, message, ok in
    if (code == 200) {
        if (ok) {
            
        }
    }
}

AuthClient().mfaCheck(phone: nil, email: "abc@gmail.com") { code, message, ok in
    if (code == 200) {
        if (ok) {
            
        }
    }
}

¶ 短信验证

通过短信进行多因素认证

func mfaVerifyByPhone(phone: String, code: String, completion: @escaping(Int, String?, UserInfo?) -> Void)

参数

  • phone 手机号码
  • code 短信验证码

示例

AuthClient().mfaVerifyByPhone(phone: "188xxxx8888", code: "1234") { code, message, userInfo in
    // userInfo 用户信息
}

¶ 邮箱验证

通过邮件验证码进行多因素认证

func mfaVerifyByEmail(email: String, code: String, completion: @escaping(Int, String?, UserInfo?) -> Void)

参数

  • email 邮箱地址
  • code 邮件验证码

示例

AuthClient().mfaVerifyByEmail(email: "abc@gmail.com", code: "1234") { code, message, userInfo in
    // userInfo 用户信息
}

¶ TOTP 验证

通过一次性密码 TOTP (Time-based One Time Password) 进行多因素认证

func mfaVerifyByOTP(code: String, completion: @escaping(Int, String?, UserInfo?) -> Void)

参数

  • code TOTP code

示例

AuthClient().mfaVerifyByTOTP(code: "1234") { code, message, userInfo in
    // userInfo 用户信息
}

¶ 恢复码验证

用户在绑定 TOTP 时会得到一个恢复码,用户需要安全保存该恢复码,在调用此 API 时,将其作为参数传入。

注意,恢复码验证成功后,会生成新的恢复码,旧的恢复码失效

func mfaVerifyByRecoveryCode(code: String, completion: @escaping(Int, String?, UserInfo?) -> Void)

参数

  • code 恢复码

示例

AuthClient().mfaVerifyByRecoveryCode(code: "1234") { code, message, userInfo in
    // userInfo 用户信息
}

¶ 上传人脸照片

人脸识别之前上传照片,此接口返回照片的 Key 值,用做人脸校验。

func uploadFaceImage(_ image: UIImage,_ isPrivate: Bool = true, completion: @escaping (Int, String?) -> Void)

参数

  • image 人脸照片

示例

AuthClient().uploadFaceImage(image) { code, key in
    // key 人脸识别参数
}

¶ 绑定人脸

首次人脸验证绑定人脸。调用此接口之前,需要先调用 上传人脸照片 接口以获取照片 key 值

func mfaAssociateByFace(photoKeyA: String, photoKeyB: String, completion: @escaping(Int, String?, UserInfo?) -> Void)

参数

  • photoKeyA 首张照片的 Key
  • photoKeyB 第二张照片的 Key

示例

AuthClient().mfaAssociateByFace(photoKeyA: "photoKeyA", photoKeyB: "photoKeyB") { code, message, userInfo in
    // userInfo 用户信息
}

¶ 人脸验证

通过人脸识别进行多因素认证。调用此接口之前,需要先调用 上传人脸照片 接口以获取照片 key 值

func mfaVerifyByFace(photoKey: String, completion: @escaping(Int, String?, UserInfo?) -> Void)

参数

  • photoKey 照片的 Key

示例

AuthClient().mfaVerifyByFace(photoKey: "photoKey") { code, message, userInfo in
    // userInfo 用户信息
}

Previous article: 标准协议 API Next article: 扫码认证 API
  • MFA 检测
  • 短信验证
  • 邮箱验证
  • TOTP 验证
  • 恢复码验证
  • 上传人脸照片
  • 绑定人脸
  • 人脸验证

User identity management

Integrated third-party login
Customized authentication process

Enterprise internal management

Single sign-on
Multi-factor authentication
Permission management

Developer

Development Documentation
GitHub (opens new window)

Company

official@genauth.ai
16th Floor, Building B, Beichen Century Center, Chaoyang District, Beijing (Total)
Room 406, 4th Floor, Block B, No. 200, Tianfu Fifth Street, High-tech Zone, Chengdu (Branch)

© Beijing Steamory Technology Co., Ltd.