# Manage MFA

> Web3Auth iOS SDK - manageMFA | Embedded Wallets

The `manageMFA` method is used to trigger manage MFA flow for users, allowing users to update their MFA settings. The method takes `W3ALoginParams` which will used during custom verifiers. If you are using default login providers, you don't need to pass `W3ALoginParams`. If you are using custom JWT verifiers, you need to pass the JWT token in `loginParams` as well.

## Usage

<Tabs
  defaultValue="default-verifier"
  values={[
    { label: "Default Verifier", value: "default-verifier" },
    { label: "Custom JWT Verifier", value: "custom-jwt-verifier" },
  ]}
>

<TabItem value = "default-verifier">

```swift
do {
  let response = try await web3Auth.manageMFA()
  if response {
    // Handle success
  } else {
    // Something went wrong
  }
} catch {
  // Handle error
}
```

</TabItem>

<TabItem value="custom-jwt-verifier">

```swift
let loginParams = W3ALoginParams(
  loginProvider: .JWT,
  extraLoginOptions: .init(id_token: "your_jwt_token")
)

do {
  let response = try await web3Auth.manageMFA(loginParams)
  if response {
    // Handle success
  } else {
    // Something went wrong
  }
} catch {
  // Handle error
}
```

</TabItem>
</Tabs>
