For AI agents: a documentation index is available at /llms.txt. A markdown version of this page is available at the same URL with .md appended (or via Accept: text/markdown).
Skip to main content

Enable MFA for a user

The enableMFA method is used to trigger MFA setup flow for users. If you are using default sign-in providers, you don't need to pass LoginParams. If the user signed in with a custom auth connection that needs extra sign-in options (for example, Auth0), pass the same LoginParams you used to sign in.

enableMFA returns a CompletableFuture<Boolean>. It fails with MFA already enabled if the user has already enabled MFA, and with No user found, please login again! if there's no active session.

The SDK fills in the auth connection details from the current session, so the authConnection value you pass doesn't change which connection is used.

warning
  • You can pass idToken in LoginParams, and users who signed in with an idToken, including silent SFA sessions, can use this method.
  • The SDK calls refreshSession() first. If the refresh fails, the stored Auth tokens are cleared, and the method fails with No user found, please login again! unless the SDK can continue with the user's JWT and a local session.

Usage​

Usage
import android.widget.Button
import com.web3auth.core.Web3Auth
import android.os.Bundle

class MainActivity : AppCompatActivity() {
private lateinit var web3Auth: Web3Auth

private fun enableMFA() {
val completableFuture = web3Auth.enableMFA()

completableFuture.whenComplete{_, error ->
if (error == null) {
Log.d("MainActivity_Web3Auth", "Launched successfully")
// Add your logic
} else {
// Add your logic on error
Log.d("MainActivity_Web3Auth", error.message ?: "Something went wrong")
}
}
}

override fun onCreate(savedInstanceState: Bundle?) {
...
// Setup UI and event handlers
val enableMFAButton = findViewById<Button>(R.id.enableMFAButton)
enableMFAButton.setOnClickListener { enableMFA() }
...
}
...
}
On this page