[{"data":1,"prerenderedAt":1080},["ShallowReactive",2],{"docs-nav-\u002Fdocs\u002Ffake-accounts\u002Fadvanced\u002Fzero-trust-mode":3,"\u002Fdocs\u002Ffake-accounts\u002Fadvanced\u002Fzero-trust-mode":40},[4],{"title":5,"path":6,"stem":7,"children":8,"page":26},"Fake Accounts","\u002Fdocs\u002Ffake-accounts","1.docs\u002F4.fake accounts",[9,13,17,27],{"title":10,"path":11,"stem":12},"How it works","\u002Fdocs\u002Ffake-accounts\u002Fhow-fake-account-detection-works","1.docs\u002F4.fake accounts\u002F0.how fake account detection works",{"title":14,"path":15,"stem":16},"Quick start","\u002Fdocs\u002Ffake-accounts\u002Fquick-start","1.docs\u002F4.fake accounts\u002F1.quick start",{"title":18,"path":19,"stem":20,"children":21,"page":26},"Concepts","\u002Fdocs\u002Ffake-accounts\u002Fconcepts","1.docs\u002F4.fake accounts\u002F2.Concepts",[22],{"title":23,"path":24,"stem":25},"Evaluations","\u002Fdocs\u002Ffake-accounts\u002Fconcepts\u002Fevaluations","1.docs\u002F4.fake accounts\u002F2.Concepts\u002F0.evaluations",false,{"title":28,"path":29,"stem":30,"children":31,"page":26},"Advanced","\u002Fdocs\u002Ffake-accounts\u002Fadvanced","1.docs\u002F4.fake accounts\u002F3.Advanced",[32,36],{"title":33,"path":34,"stem":35},"Zero trust mode","\u002Fdocs\u002Ffake-accounts\u002Fadvanced\u002Fzero-trust-mode","1.docs\u002F4.fake accounts\u002F3.Advanced\u002F1.zero-trust-mode",{"title":37,"path":38,"stem":39},"Custom challenges","\u002Fdocs\u002Ffake-accounts\u002Fadvanced\u002Fcustom-challenges","1.docs\u002F4.fake accounts\u002F3.Advanced\u002F2.custom-challenges",{"id":41,"title":33,"body":42,"description":1072,"extension":1073,"meta":1074,"navigation":805,"path":34,"seo":1077,"sitemap":1078,"stem":35,"__hash__":1079},"docs\u002F1.docs\u002F4.fake accounts\u002F3.Advanced\u002F1.zero-trust-mode.md",{"type":43,"value":44,"toc":1067},"minimark",[45,49,59,66,71,84,100,106,114,117,121,156,267,282,292,469,531,541,624,651,653,657,662,764,772,1039,1046,1051,1056,1063],[46,47,33],"h1",{"id":48},"zero-trust-mode",[50,51,52,53,58],"p",{},"Zero trust mode is an excellent way to ensure the integrity of your user evaluations while still leveraging the out-of-the-box challenge flow. You will still have the ability to customize all text and appearance to suit your brand. If you want to build your own challenge flow, see the ",[54,55,57],"a",{"href":56},"\u002Fdocs\u002Ffake-accounts\u002Fadvanced\u002Fcustom-implementation","custom implementation"," guide.",[60,61,63],"alert",{"type":62},"tip",[50,64,65],{},"This feature operates under the Zero Trust security model. None of the information about the user is determined by the client.",[67,68,70],"h3",{"id":69},"rupt-dashboard","Rupt dashboard",[72,73,74],"ol",{},[75,76,77,78,83],"li",{},"Go to the ",[54,79,82],{"href":80,"target":81},"https:\u002F\u002Fdashboard.rupt.dev\u002Fsettings\u002Ffake-accounts","_blank","fake account settings page"," and enable the fake account rules you want to enforce.",[85,86,91,92],"div",{"className":87},[88,89,90],"relative","rounded-lg","overflow-hidden","\n  ",[93,94],"img",{"src":95,"alt":96,"className":97},"\u002Fimg\u002Fmanaged-challenges-1.png","Enable managed challenges",[98,99],"mt-0","mb-0",[72,101,103],{"start":102},2,[75,104,105],{},"Configure the fake account challenge appearance. You can upload your logo, customize the text, colors and apply any custom CSS.",[85,107,91,109],{"className":108},[88,89,90],[93,110],{"src":111,"alt":112,"className":113},"\u002Fimg\u002Fmanaged-challenges-4.png","Configure challenge appearance",[98,99],[115,116],"hr",{},[67,118,120],{"id":119},"server-side","Server side",[85,122,91,124],{"className":123},[88],[85,125,131,132,131,139,91],{"className":126,"style":130},[127,128,129],"absolute","right-0","top-0","top: -45px;","\n    ",[133,134,138],"span",{"className":135},[136,137],"text-sm","pr-2","Language",[140,141,146,147,146,152,131],"select",{"id":142,"className":143},"languageSelect",[140,144,145],"select-bordered","select-sm","\n      ",[148,149,151],"option",{"value":150},"node","Node",[148,153,155],{"value":154},"curl","cURL",[85,157,160,165,207,212],{"className":158},[159],"language-node",[72,161,162],{},[75,163,164],{},"Include the Rupt Node SDK:",[166,167,172],"pre",{"className":168,"code":169,"language":170,"meta":171,"style":171},"language-bash shiki shiki-themes one-dark-pro monokai","yarn add @ruptjs\u002Fcore\n#OR\nnpm install @ruptjs\u002Fcore\n","bash","",[173,174,175,190,196],"code",{"__ignoreMap":171},[133,176,179,183,187],{"class":177,"line":178},"line",1,[133,180,182],{"class":181},"sUpKv","yarn",[133,184,186],{"class":185},"sgpKs"," add",[133,188,189],{"class":185}," @ruptjs\u002Fcore\n",[133,191,192],{"class":177,"line":102},[133,193,195],{"class":194},"sDDnO","#OR\n",[133,197,199,202,205],{"class":177,"line":198},3,[133,200,201],{"class":181},"npm",[133,203,204],{"class":185}," install",[133,206,189],{"class":185},[72,208,209],{"start":102},[75,210,211],{},"Initialize the Rupt Node SDK with your project API secret:",[166,213,217],{"className":214,"code":215,"language":216,"meta":171,"style":171},"language-js shiki shiki-themes one-dark-pro monokai","import Rupt from \"@ruptjs\u002Fcore\";\nconst rupt = new Rupt(\"API_SECRET\");\n","js",[173,218,219,239],{"__ignoreMap":171},[133,220,221,225,229,232,235],{"class":177,"line":178},[133,222,224],{"class":223},"sqnWQ","import",[133,226,228],{"class":227},"sskXI"," Rupt",[133,230,231],{"class":223}," from",[133,233,234],{"class":185}," \"@ruptjs\u002Fcore\"",[133,236,238],{"class":237},"sFXR2",";\n",[133,240,241,245,249,253,256,258,261,264],{"class":177,"line":102},[133,242,244],{"class":243},"sfrnW","const",[133,246,248],{"class":247},"syDQ0"," rupt",[133,250,252],{"class":251},"sBBc0"," =",[133,254,255],{"class":223}," new",[133,257,228],{"class":181},[133,259,260],{"class":237},"(",[133,262,263],{"class":185},"\"API_SECRET\"",[133,265,266],{"class":237},");\n",[50,268,269,273,277,278,281],{},[133,270,272],{"className":271},[159],"3.",[133,274,272],{"className":275},[276],"language-curl"," Call the ",[173,279,280],{},"evaluate"," method using the signup action, provide the device and user information from your authentication flow.",[60,283,284],{"type":62},[50,285,286,287,291],{},"If you provide the fingerprint hash, the evaluation will be more accurate. To get the fingerprint hash, see ",[54,288,290],{"href":289},"\u002Fdocs\u002Ffingerprinting\u002Fadvanced\u002Ffingerprint-hashing","fingerprint hashing",".",[85,293,295],{"className":294},[159],[166,296,298],{"className":214,"code":297,"language":216,"meta":171,"style":171},"const res = await rupt.evaluate({\n  action: \"signup\", \u002F\u002F use \"login\" for login attempts,\n  user: \"USER_ID\",\n  fingerprint: FINGERPRINT_HASH, \u002F\u002F optional, first value from getHash()\n  last_fingerprint: LAST_FINGERPRINT_HASH, \u002F\u002F optional, second value from getHash()\n  version: \"2.32.0\",\n  ip: \"IP_ADDRESS\",\n  email: \"EMAIL\",\n  phone: \"PHONE\",\n  metadata: {\n    key: \"value\",\n  },\n});\n",[173,299,300,321,338,351,367,383,396,409,422,435,444,457,463],{"__ignoreMap":171},[133,301,302,304,307,309,312,314,316,318],{"class":177,"line":178},[133,303,244],{"class":243},[133,305,306],{"class":247}," res",[133,308,252],{"class":251},[133,310,311],{"class":223}," await",[133,313,248],{"class":247},[133,315,291],{"class":237},[133,317,280],{"class":181},[133,319,320],{"class":237},"({\n",[133,322,323,326,329,332,335],{"class":177,"line":102},[133,324,325],{"class":227},"  action",[133,327,328],{"class":237},": ",[133,330,331],{"class":185},"\"signup\"",[133,333,334],{"class":237},", ",[133,336,337],{"class":194},"\u002F\u002F use \"login\" for login attempts,\n",[133,339,340,343,345,348],{"class":177,"line":198},[133,341,342],{"class":227},"  user",[133,344,328],{"class":237},[133,346,347],{"class":185},"\"USER_ID\"",[133,349,350],{"class":237},",\n",[133,352,354,357,359,362,364],{"class":177,"line":353},4,[133,355,356],{"class":227},"  fingerprint",[133,358,328],{"class":237},[133,360,361],{"class":247},"FINGERPRINT_HASH",[133,363,334],{"class":237},[133,365,366],{"class":194},"\u002F\u002F optional, first value from getHash()\n",[133,368,370,373,375,378,380],{"class":177,"line":369},5,[133,371,372],{"class":227},"  last_fingerprint",[133,374,328],{"class":237},[133,376,377],{"class":247},"LAST_FINGERPRINT_HASH",[133,379,334],{"class":237},[133,381,382],{"class":194},"\u002F\u002F optional, second value from getHash()\n",[133,384,386,389,391,394],{"class":177,"line":385},6,[133,387,388],{"class":227},"  version",[133,390,328],{"class":237},[133,392,393],{"class":185},"\"2.32.0\"",[133,395,350],{"class":237},[133,397,399,402,404,407],{"class":177,"line":398},7,[133,400,401],{"class":227},"  ip",[133,403,328],{"class":237},[133,405,406],{"class":185},"\"IP_ADDRESS\"",[133,408,350],{"class":237},[133,410,412,415,417,420],{"class":177,"line":411},8,[133,413,414],{"class":227},"  email",[133,416,328],{"class":237},[133,418,419],{"class":185},"\"EMAIL\"",[133,421,350],{"class":237},[133,423,425,428,430,433],{"class":177,"line":424},9,[133,426,427],{"class":227},"  phone",[133,429,328],{"class":237},[133,431,432],{"class":185},"\"PHONE\"",[133,434,350],{"class":237},[133,436,438,441],{"class":177,"line":437},10,[133,439,440],{"class":227},"  metadata",[133,442,443],{"class":237},": {\n",[133,445,447,450,452,455],{"class":177,"line":446},11,[133,448,449],{"class":227},"    key",[133,451,328],{"class":237},[133,453,454],{"class":185},"\"value\"",[133,456,350],{"class":237},[133,458,460],{"class":177,"line":459},12,[133,461,462],{"class":237},"  },\n",[133,464,466],{"class":177,"line":465},13,[133,467,468],{"class":237},"});\n",[85,470,472,522],{"className":471},[276],[166,473,475],{"className":168,"code":474,"language":170,"meta":171,"style":171},"curl -X POST https:\u002F\u002Fapi.rupt.com\u002Fv2\u002Fdevices\u002Fevaluate \\\n  -H \"Authorization: Bearer API_SECRET\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"action\": \"signup\", \"user\": \"USER_ID\", \"fingerprint\": \"FINGERPRINT_HASH\", \"last_fingerprint\": \"LAST_FINGERPRINT_HASH\", \"version\": \"2.32.0\", \"ip\": \"IP_ADDRESS\", \"email\": \"EMAIL\", \"phone\": \"PHONE\", \"metadata\": {\"key\": \"value\"}}'\n",[173,476,477,495,505,514],{"__ignoreMap":171},[133,478,479,481,485,488,491],{"class":177,"line":178},[133,480,154],{"class":181},[133,482,484],{"class":483},"sRaZW"," -X",[133,486,487],{"class":185}," POST",[133,489,490],{"class":185}," https:\u002F\u002Fapi.rupt.com\u002Fv2\u002Fdevices\u002Fevaluate",[133,492,494],{"class":493},"sLJFi"," \\\n",[133,496,497,500,503],{"class":177,"line":102},[133,498,499],{"class":483},"  -H",[133,501,502],{"class":185}," \"Authorization: Bearer API_SECRET\"",[133,504,494],{"class":493},[133,506,507,509,512],{"class":177,"line":198},[133,508,499],{"class":483},[133,510,511],{"class":185}," \"Content-Type: application\u002Fjson\"",[133,513,494],{"class":493},[133,515,516,519],{"class":177,"line":353},[133,517,518],{"class":483},"  -d",[133,520,521],{"class":185}," '{\"action\": \"signup\", \"user\": \"USER_ID\", \"fingerprint\": \"FINGERPRINT_HASH\", \"last_fingerprint\": \"LAST_FINGERPRINT_HASH\", \"version\": \"2.32.0\", \"ip\": \"IP_ADDRESS\", \"email\": \"EMAIL\", \"phone\": \"PHONE\", \"metadata\": {\"key\": \"value\"}}'\n",[60,523,525],{"type":524},"warning",[50,526,527,528,530],{},"Call the ",[173,529,280],{}," method\u002Fendpoint on both the signup and login flows. If a user abandons the signup challenge flow, the login flow will also recommend a challenge.",[50,532,533,537,540],{},[133,534,536],{"className":535},[159],"4.",[133,538,536],{"className":539},[276]," Rupt returns a response that looks like this:",[166,542,546],{"className":543,"code":544,"language":545,"meta":171,"style":171},"language-json shiki shiki-themes one-dark-pro monokai","{\n  \"verdict\": \"challenge\",\n  \"fingerprint_id\": \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n  \"reasons\": [\"new_device\", \"new_ip\"],\n  \"challenge_id\": \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n  \"redirect\": \"https:\u002F\u002Fchallenge.rupt.dev\u002F?challenge=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n","json",[173,547,548,553,567,579,598,609,619],{"__ignoreMap":171},[133,549,550],{"class":177,"line":178},[133,551,552],{"class":237},"{\n",[133,554,555,559,561,565],{"class":177,"line":102},[133,556,558],{"class":557},"s9wyi","  \"verdict\"",[133,560,328],{"class":237},[133,562,564],{"class":563},"sKGTp","\"challenge\"",[133,566,350],{"class":237},[133,568,569,572,574,577],{"class":177,"line":198},[133,570,571],{"class":557},"  \"fingerprint_id\"",[133,573,328],{"class":237},[133,575,576],{"class":563},"\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"",[133,578,350],{"class":237},[133,580,581,584,587,590,592,595],{"class":177,"line":353},[133,582,583],{"class":557},"  \"reasons\"",[133,585,586],{"class":237},": [",[133,588,589],{"class":563},"\"new_device\"",[133,591,334],{"class":237},[133,593,594],{"class":563},"\"new_ip\"",[133,596,597],{"class":237},"],\n",[133,599,600,603,605,607],{"class":177,"line":369},[133,601,602],{"class":557},"  \"challenge_id\"",[133,604,328],{"class":237},[133,606,576],{"class":563},[133,608,350],{"class":237},[133,610,611,614,616],{"class":177,"line":385},[133,612,613],{"class":557},"  \"redirect\"",[133,615,328],{"class":237},[133,617,618],{"class":563},"\"https:\u002F\u002Fchallenge.rupt.dev\u002F?challenge=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n",[133,620,621],{"class":177,"line":398},[133,622,623],{"class":237},"}\n",[50,625,626,627,334,630,334,633,334,636,639,640,643,644,647,648,650],{},"The verdict will be either ",[173,628,629],{},"challenge",[173,631,632],{},"allow",[173,634,635],{},"restrict",[173,637,638],{},"challenge_and_restrict",", or ",[173,641,642],{},"deny",". The ",[173,645,646],{},"challenge_id"," can be used to perform a two-factor authentication challenge using the rupt challenge page on the client-side. Return the ",[173,649,646],{}," to the client-side.",[115,652],{},[67,654,656],{"id":655},"client-side","Client-side",[72,658,659],{},[75,660,661],{},"Install the Rupt SDK",[663,664,665,684,699,728],"code-tabs",{},[666,667,668],"template",{"v-slot:yarn":171},[166,669,673],{"className":670,"code":671,"language":672,"meta":171,"style":171},"language-sh shiki shiki-themes one-dark-pro monokai","yarn add rupt\n","sh",[173,674,675],{"__ignoreMap":171},[133,676,677,679,681],{"class":177,"line":178},[133,678,182],{"class":181},[133,680,186],{"class":185},[133,682,683],{"class":185}," rupt\n",[666,685,686],{"v-slot:npm":171},[166,687,689],{"className":670,"code":688,"language":672,"meta":171,"style":171},"npm install rupt\n",[173,690,691],{"__ignoreMap":171},[133,692,693,695,697],{"class":177,"line":178},[133,694,201],{"class":181},[133,696,204],{"class":185},[133,698,683],{"class":185},[666,700,701],{"v-slot:iOS":171},[702,703,704,711,718],"ul",{},[75,705,706,707],{},"Download the Rupt SDK binary from ",[54,708,710],{"href":709,"target":81},"\u002Fios\u002Fsdk\u002FRuptClient.xcframework.zip","this link",[75,712,713,714,717],{},"Unzip & drag and drop the ",[173,715,716],{},"RuptClient.xcframework"," into your project.",[75,719,720,721,724,725,291],{},"Select ",[173,722,723],{},"Copy items if needed"," and click ",[173,726,727],{},"Finish",[666,729,730],{"v-slot:Android":171},[702,731,732,751,757],{},[75,733,734,735,738,739,742,743,746,747,750],{},"Ensure ",[173,736,737],{},"mavenCentral()"," and ",[173,740,741],{},"jitpack"," are added to your ",[173,744,745],{},"dependencyResolutionManagement"," block in your ",[173,748,749],{},"settings.gradle"," file.",[75,752,753,754],{},"Add Rupt to your dependencies: ",[173,755,756],{},"implementation(\"dev.rupt.android:rupt-android:3.7.0\")",[75,758,759,760,291],{},"Add required dependencies (see details in the account sharing quick start -- select \"Android\" platform) ",[54,761,763],{"href":762},"\u002Fdocs\u002Faccount-sharing\u002Fquick-start","Android installation guide",[72,765,766],{"start":102},[75,767,768,769,771],{},"If the ",[173,770,646],{}," is returned, open a challenge.",[663,773,774,883,961],{},[666,775,776],{"v-slot:Browser SDK":171},[166,777,779],{"className":214,"code":778,"language":216,"meta":171,"style":171},"import { challenge } from 'rupt';\n\nconst res = await your_signup_api_call({ ... });\n\nchallenge({\n  challenge_id: res.challenge_id,\n  redirect_urls: {\n    success_url: \"https:\u002F\u002Fexample.com\u002Fsuccess\",\n  },\n});\n",[173,780,781,801,807,830,834,840,856,863,875,879],{"__ignoreMap":171},[133,782,783,785,788,790,793,796,799],{"class":177,"line":178},[133,784,224],{"class":223},[133,786,787],{"class":237}," { ",[133,789,629],{"class":227},[133,791,792],{"class":237}," } ",[133,794,795],{"class":223},"from",[133,797,798],{"class":185}," 'rupt'",[133,800,238],{"class":237},[133,802,803],{"class":177,"line":102},[133,804,806],{"emptyLinePlaceholder":805},true,"\n",[133,808,809,811,813,815,817,820,823,827],{"class":177,"line":198},[133,810,244],{"class":243},[133,812,306],{"class":247},[133,814,252],{"class":251},[133,816,311],{"class":223},[133,818,819],{"class":181}," your_signup_api_call",[133,821,822],{"class":237},"({ ",[133,824,826],{"class":825},"suS8p","...",[133,828,829],{"class":237}," });\n",[133,831,832],{"class":177,"line":353},[133,833,806],{"emptyLinePlaceholder":805},[133,835,836,838],{"class":177,"line":369},[133,837,629],{"class":181},[133,839,320],{"class":237},[133,841,842,845,847,850,852,854],{"class":177,"line":385},[133,843,844],{"class":227},"  challenge_id",[133,846,328],{"class":237},[133,848,849],{"class":247},"res",[133,851,291],{"class":237},[133,853,646],{"class":227},[133,855,350],{"class":237},[133,857,858,861],{"class":177,"line":398},[133,859,860],{"class":227},"  redirect_urls",[133,862,443],{"class":237},[133,864,865,868,870,873],{"class":177,"line":411},[133,866,867],{"class":227},"    success_url",[133,869,328],{"class":237},[133,871,872],{"class":185},"\"https:\u002F\u002Fexample.com\u002Fsuccess\"",[133,874,350],{"class":237},[133,876,877],{"class":177,"line":424},[133,878,462],{"class":237},[133,880,881],{"class":177,"line":437},[133,882,468],{"class":237},[666,884,885],{"v-slot:iOS SDK":171},[166,886,890],{"className":887,"code":888,"language":889,"meta":171,"style":171},"language-swift shiki shiki-themes one-dark-pro monokai","let res = await your_signup_api_call({ ... });\n\nruptClient.openChallenge(\n  id: res.challenge_id,\n  channel: nil, \u002F\u002F optional\n)\n","swift",[173,891,892,914,918,929,941,956],{"__ignoreMap":171},[133,893,894,897,900,903,905,908,910,912],{"class":177,"line":178},[133,895,896],{"class":223},"let",[133,898,899],{"class":237}," res ",[133,901,902],{"class":825},"=",[133,904,311],{"class":223},[133,906,819],{"class":907},"s54Uj",[133,909,822],{"class":237},[133,911,826],{"class":825},[133,913,829],{"class":237},[133,915,916],{"class":177,"line":102},[133,917,806],{"emptyLinePlaceholder":805},[133,919,920,923,926],{"class":177,"line":198},[133,921,922],{"class":237},"ruptClient.",[133,924,925],{"class":907},"openChallenge",[133,927,928],{"class":237},"(\n",[133,930,931,934,937,939],{"class":177,"line":353},[133,932,933],{"class":907},"  id",[133,935,936],{"class":237},": res.",[133,938,646],{"class":227},[133,940,350],{"class":237},[133,942,943,946,948,951,953],{"class":177,"line":369},[133,944,945],{"class":907},"  channel",[133,947,328],{"class":237},[133,949,950],{"class":483},"nil",[133,952,334],{"class":237},[133,954,955],{"class":194},"\u002F\u002F optional\n",[133,957,958],{"class":177,"line":385},[133,959,960],{"class":237},")\n",[666,962,963],{"v-slot:Android SDK":171},[166,964,968],{"className":965,"code":966,"language":967,"meta":171,"style":171},"language-kotlin shiki shiki-themes one-dark-pro monokai","val res = your_signup_api_call({ ... });\n\nruptClient.openChallenge(\n  id = res.challenge_id,\n  context = context,\n  channel = null, \u002F\u002F optional\n)\n","kotlin",[173,969,970,989,993,1001,1011,1021,1035],{"__ignoreMap":171},[133,971,972,975,977,979,981,983,986],{"class":177,"line":178},[133,973,974],{"class":223},"val",[133,976,899],{"class":237},[133,978,902],{"class":251},[133,980,819],{"class":181},[133,982,822],{"class":237},[133,984,985],{"class":825},"..",[133,987,988],{"class":237},". });\n",[133,990,991],{"class":177,"line":102},[133,992,806],{"emptyLinePlaceholder":805},[133,994,995,997,999],{"class":177,"line":198},[133,996,922],{"class":237},[133,998,925],{"class":181},[133,1000,928],{"class":237},[133,1002,1003,1006,1008],{"class":177,"line":353},[133,1004,1005],{"class":237},"  id ",[133,1007,902],{"class":251},[133,1009,1010],{"class":237}," res.challenge_id,\n",[133,1012,1013,1016,1018],{"class":177,"line":369},[133,1014,1015],{"class":237},"  context ",[133,1017,902],{"class":251},[133,1019,1020],{"class":237}," context,\n",[133,1022,1023,1026,1028,1031,1033],{"class":177,"line":385},[133,1024,1025],{"class":237},"  channel ",[133,1027,902],{"class":251},[133,1029,1030],{"class":483}," null",[133,1032,334],{"class":237},[133,1034,955],{"class":194},[133,1036,1037],{"class":177,"line":398},[133,1038,960],{"class":237},[50,1040,1041,1042,291],{},"For more information, see ",[54,1043,1045],{"href":1044},"\u002Fapi\u002Fchallenges\u002Fopen-a-challenge","opening a challenge",[72,1047,1048],{"start":198},[75,1049,1050],{},"Once the challenge is completed, the user will be redirected back to the success url (or the success callbacks in iOS or Android) or the referring page if no success url is provided.",[60,1052,1053],{"type":524},[50,1054,1055],{},"Don't forget step 3 (especially on mobile). The challenge will call the success callback if the challenge is completed successfully.",[50,1057,1058,1059,291],{},"For more information on customizing the challenge page, see ",[54,1060,1062],{"href":1061},"\u002Fdocs\u002Fchallenges\u002Foverview","challenges",[1064,1065,1066],"style",{},"html pre.shiki code .sUpKv, html code.shiki .sUpKv{--shiki-default:#61AFEF;--shiki-dark:#A6E22E}html pre.shiki code .sgpKs, html code.shiki .sgpKs{--shiki-default:#98C379;--shiki-dark:#E6DB74}html pre.shiki code .sDDnO, html code.shiki .sDDnO{--shiki-default:#7F848E;--shiki-default-font-style:italic;--shiki-dark:#88846F;--shiki-dark-font-style:inherit}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sqnWQ, html code.shiki .sqnWQ{--shiki-default:#C678DD;--shiki-dark:#F92672}html pre.shiki code .sskXI, html code.shiki .sskXI{--shiki-default:#E06C75;--shiki-dark:#F8F8F2}html pre.shiki code .sFXR2, html code.shiki .sFXR2{--shiki-default:#ABB2BF;--shiki-dark:#F8F8F2}html pre.shiki code .sfrnW, html code.shiki .sfrnW{--shiki-default:#C678DD;--shiki-default-font-style:inherit;--shiki-dark:#66D9EF;--shiki-dark-font-style:italic}html pre.shiki code .syDQ0, html code.shiki .syDQ0{--shiki-default:#E5C07B;--shiki-dark:#F8F8F2}html pre.shiki code .sBBc0, html code.shiki .sBBc0{--shiki-default:#56B6C2;--shiki-dark:#F92672}html pre.shiki code .sRaZW, html code.shiki .sRaZW{--shiki-default:#D19A66;--shiki-dark:#AE81FF}html pre.shiki code .sLJFi, html code.shiki .sLJFi{--shiki-default:#56B6C2;--shiki-dark:#AE81FF}html pre.shiki code .s9wyi, html code.shiki .s9wyi{--shiki-default:#E06C75;--shiki-default-font-style:inherit;--shiki-dark:#66D9EF;--shiki-dark-font-style:italic}html pre.shiki code .sKGTp, html code.shiki .sKGTp{--shiki-default:#98C379;--shiki-dark:#CFCFC2}html pre.shiki code .suS8p, html code.shiki .suS8p{--shiki-default:#ABB2BF;--shiki-dark:#F92672}html pre.shiki code .s54Uj, html code.shiki .s54Uj{--shiki-default:#61AFEF;--shiki-dark:#66D9EF}",{"title":171,"searchDepth":102,"depth":102,"links":1068},[1069,1070,1071],{"id":69,"depth":198,"text":70},{"id":119,"depth":198,"text":120},{"id":655,"depth":198,"text":656},"Zero trust mode is an excellent way to ensure the integrity of your user evaluations while still leveraging the out-of-the-box challenge flow. You will still have the ability to customize all text and appearance to suit your brand. If you want to build your own challenge flow, see the custom implementation guide.","md",{"head":1075},{"title":1076},"Detecting fake accounts in zero trust mode",{"title":33,"description":1072},{"loc":34},"kuwCkOKpvD2cUiZcmiLs_D1BtcdRkvAQaoT3TOM3MoY",1776716928066]