PlatformsFacebookLogin

useTwoFactorLoginValidateCodeMutation

Domainlogin
Kindmutation
doc_id26264014419868193
Path/api/graphql/
Sendscode, encryptedContext, flow, maskedContactPoint, method, next_uri, shared_prefs_data, trust_this_device
Readsxfb_two_factor_login_validate_code.is_code_valid, xfb_two_factor_login_validate_code.error_message, xfb_two_factor_login_validate_code.next, xfb_two_factor_login_validate_code.trusted_device_nonce, xfb_two_factor_login_validate_code.user_id
Called fromuseTwoFactorLoginValidateCode
reaev_0bc2c7d63d6a916cb1878ffcd7c758abb75c7c769856c711e28e55c7aeb1a5da

Seen 2 time(s) in 2 run(s).

ActionOur stepTimesStatusTookAfter step startErrors
hostcode: typed the current authenticator code; submitting with Enter22002605–3066 ms11–29 ms—

What it sent and what came back (the newest 1 from our runs)

Read from each run's own recording (rule 73), secrets and signed link tokens taken out. Kept in ~/.logCli/rea/clientFacts.json, so it stays after the run is pruned.

runs/host/20261026T164654_61594285317994, code: typed the current authenticator code; submitting with Enter: 200, 2605 ms

Sent:

{
  "qpl_active_flow_ids": "241973805",
  "fb_api_caller_class": "RelayModern",
  "fb_api_req_friendly_name": "useTwoFactorLoginValidateCodeMutation",
  "server_timestamps": "true",
  "variables": {
    "method": "TOTP",
    "flow": "TWO_FACTOR_LOGIN",
    "encryptedContext": "AWS0QH6zFAzqoaf8cmMG-QxAIJwr6xNoT4IvAm7Od7SN9ZjOg0wEicKif6oM7UeBuSgdOUcH9Bj4EY1uVha68_tOERoY3Osu504jJKti4gwzseGxv-h6jyxHrdVjQ2_zX50Krc-2YxJ34UZT2Cc59O_bbh76gTM5TRPLvBh_27mN0Mdh7r4Fr39o12u05Z6tUWwZcchdPVb4_EKcWUAhzECtUCZsbtMPILJc5sks5C1zKRaOu5oIICYk6B98qGrqVGWTrnauSqy7nhaUfDk9b8dbGhYy_Tn_ajZSgWJkgKSRJtaN5yNJyENiqvsw-ShC2zh2Kp9BweCsZjS6abSVdyZjHGMXvPGcZO1OOxWB2mxnFnouTqVdtacAzRMvjfH2njhTW5Zqqs-wrxvN… (802 chars)",
    "maskedContactPoint": null,
    "next_uri": null,
    "shared_prefs_data": "eyIxMTAyMCI6W3sidCI6MTc5MzAzMzQzNS44MDYsImN0eCI6eyJjbiI6Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS90d29fc3RlcF92ZXJpZmljYXRpb24vdHdvX2ZhY3Rvci8ifSwidiI6IkFtZXJpY2EvVmFuY291dmVyIn1dLCIzMDAwMCI6W3sidCI6MTc5MzAzMzQzNS44MDYsImN0eCI6eyJjbiI6Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS90d29fc3RlcF92ZXJpZmljYXRpb24vdHdvX2ZhY3Rvci8ifSwidiI6ZmFsc2V9XSwiMzAwMDEiOlt7InQiOjE3OTMwMzM0MzUuODA2LCJjdHgiOnsiY24iOiJodHRwczovL3d3dy5m… (3740 chars)",
    "trust_this_device": null
  },
  "doc_id": "26264014419868193",
  "fb_api_analytics_tags": [
    "qpl_active_flow_ids=241973805"
  ]
}

Answered:

{
  "data": {
    "xfb_two_factor_login_validate_code": {
      "is_code_valid": true,
      "error_message": null,
      "next": null,
      "trusted_device_nonce": null,
      "user_id": null
    }
  },
  "extensions": {
    "server_metadata": {
      "request_start_time_ms": 1793033446005,
      "time_at_flush_ms": 1793033448449
    },
    "is_final": true
  }
}

What it does

Submits the 6-digit two-factor code (method TOTP) during login and returns whether Facebook accepted it.

What our machine does with it

The code step types the current TOTP from Twenty's totpSecret and waits on this mutation; a 200 with no error means the code passed and sign-in continues.

What can go wrong

A rejected or expired code fails sign-in; even on success Facebook may still raise an "automated behaviour" checkpoint on a fresh account.