# 多因素认证模块

此模块用于进行绑定 MFA 认证器、解绑 MFA 认证器、用户二次认证。

请求绑定 MFA 认证器:

import { AuthenticationClient } from 'authing-js-sdk'
const authenticationClient = new AuthenticationClient({
  appId: 'YOUR_APP_ID',
})
await authenticationClient.mfa.assosicateMfaAuthenticator({
  authenticatorType: 'totp',
})

验证 MFA 二次口令:

import { AuthenticationClient } from 'authing-js-sdk'
const authenticationClient = new AuthenticationClient({
  appId: 'YOUR_APP_ID',
})
await authenticationClient.mfa.verifyTotpMfa({
  totp: '112233',
  mfaToken: 'xxx',
})

# 获取 MFA 认证器

MfaAuthenticationClient().getMfaAuthenticators()

获取 MFA 认证器

# 参数

# 示例

const authenticationClient = new AuthenticationClient({
  appId: 'YOUR_APP_ID',
})
const authenticators = await authenticationClient.mfa.getMfaAuthenticators({
  type: 'totp',
})

# 返回值

  • Promise<IMfaAuthenticators>

# 请求 MFA 二维码和密钥信息

MfaAuthenticationClient().assosicateMfaAuthenticator()

请求 MFA 二维码和密钥信息

# 参数

# 示例

const authenticationClient = new AuthenticationClient({
  appId: 'YOUR_APP_ID',
})
const authenticators = await authenticationClient.mfa.assosicateMfaAuthenticator(
  { authenticatorType: 'totp' }
)

# 返回值

  • Promise<IMfaAssociation>

# 解绑 MFA

MfaAuthenticationClient().deleteMfaAuthenticator()

解绑 MFA

# 参数

# 示例

const authenticationClient = new AuthenticationClient({
  appId: 'YOUR_APP_ID',
})
const authenticators = await authenticationClient.mfa.deleteMfaAuthenticator()

# 返回值

  • Promise<IMfaDeleteAssociation>

# 确认绑定 MFA

MfaAuthenticationClient().confirmAssosicateMfaAuthenticator()

确认绑定 MFA

# 参数

# 示例

const authenticationClient = new AuthenticationClient({
  appId: 'YOUR_APP_ID',
})
const authenticators = await authenticationClient.mfa.confirmAssosicateMfaAuthenticator(
  { authenticatorType: 'totp', totp: '112233' }
)

# 返回值

  • Promise<IMfaConfirmAssociation>

# 检验二次验证 MFA 口令

MfaAuthenticationClient().verifyTotpMfa()

检验二次验证 MFA 口令

# 参数

# 示例

const authenticationClient = new AuthenticationClient({
  appId: 'YOUR_APP_ID',
})
const authenticators = await authenticationClient.mfa.verifyTotpMfa({
  authenticatorType: 'totp',
  totp: '112233',
})

# 返回值

  • Promise<User>

# 检验二次验证 MFA 短信验证码

MfaAuthenticationClient().verifyAppSmsMfa()

检验二次验证 MFA 短信验证码

# 参数

  • options <Object>
  • options.phone <string> 用户手机号。
  • options.code <string> 手机验证码。
  • options.mfaToken <string> 登录接口返回的 mfaToken。

# 示例

const authenticationClient = new AuthenticationClient({
  appId: 'YOUR_APP_ID',
})
const authenticators = await authenticationClient.mfa.verifySmsMfa({
  mfaToken: 'xxxxxx',
  phone: '173xxxxxxxx',
  code: 'xxxx',
})

# 返回值

  • Promise<User>

# 检验二次验证 MFA 邮箱验证码

MfaAuthenticationClient().verifyAppEmailMfa()

检验二次验证 MFA 邮箱验证码

# 参数

  • options <Object>
  • options.email <string> 用户邮箱。
  • options.code <string> 手机验证码。
  • options.mfaToken <string> 登录接口返回的 mfaToken。

# 示例

const authenticationClient = new AuthenticationClient({
  appId: 'YOUR_APP_ID',
})
const authenticators = await authenticationClient.mfa.verifyAppEmailMfa({
  mfaToken: 'xxxxxx',
  email: 'example@authing.cn',
  code: 'xxxx',
})

# 返回值

  • Promise<User>

# 检测手机号或邮箱是否已被绑定

MfaAuthenticationClient().phoneOrEmailBindable()

当需要手机或邮箱 MFA 登录,而用户未绑定手机或邮箱时,可先让用户输入手机号或邮箱,用此接口先检测手机或邮箱是否可绑定,再进行 MFA 验证

# 参数

  • options <Object>
  • [options.email] <string> 要检测的邮箱。
  • [options.phone] <string> 要检测的手机号。
  • options.mfaToken <string> 登录接口返回的 mfaToken。

# 示例

const authenticationClient = new AuthenticationClient({
  appId: 'YOUR_APP_ID',
})
const authenticators = await authenticationClient.mfa.phoneOrEmailBindable({
  mfaToken: 'xxxxxx',
  email: 'example@authing.cn',
})

# 返回值

  • Promise<boolean>

# 检验二次验证 MFA 恢复代码

MfaAuthenticationClient().verifyTotpRecoveryCode()

检验二次验证 MFA 恢复代码

# 参数

# 示例

const authenticationClient = new AuthenticationClient({
  appId: 'YOUR_APP_ID',
})
const authenticators = await authenticationClient.mfa.verifyTotpRecoveryCode({
  authenticatorType: 'totp',
  totp: '112233',
})

# 返回值

  • Promise<User>