本頁面說明如何從應用程式的 後端。
對於網頁使用者,您可以透過下列其中一種方式取得使用者的回應權杖:
g-recaptcha-response
使用者在網站上提交表單時的 POST 參數- 使用者完成
grecaptcha.getResponse(opt_widget_id)
後 reCAPTCHA 驗證問題 - 做為回呼函式的字串引數
如果在
g-recaptcha
標記屬性中指定了data-callback
,或grecaptcha.render
方法中的回呼參數
如果是 Android 程式庫使用者,您可以呼叫 SafetyNetApi.RecaptchaTokenResult.getTokenResult() 方法,如果狀態傳回成功,就會取得回應權杖。
符記限制
每個 reCAPTCHA 使用者回應權杖的有效期限為 2 分鐘,而且只能驗證一次, 以防止重送攻擊如需新的權杖,您可以重新執行 reCAPTCHA 驗證。
取得回應權杖後,您必須在兩分鐘內,以 reCAPTCHA 使用 確認權杖有效。
API 要求
網址:https://www.google.com/recaptcha/api/siteverify 方法:POST
POST 參數 | 說明 |
---|---|
secret |
必要欄位。網站和 reCAPTCHA 之間的共用金鑰。 |
response |
必要欄位。網站上 reCAPTCHA 用戶端整合提供的使用者回應權杖。 |
remoteip |
選用設定。使用者的 IP 位址。 |
API 回應
回應是 JSON 物件:
{
"success": true|false,
"challenge_ts": timestamp, // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
"hostname": string, // the hostname of the site where the reCAPTCHA was solved
"error-codes": [...] // optional
}
reCAPTCHA Android:
{
"success": true|false,
"challenge_ts": timestamp, // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
"apk_package_name": string, // the package name of the app where the reCAPTCHA was solved
"error-codes": [...] // optional
}
錯誤代碼參考資料
錯誤代碼 | 說明 |
---|---|
missing-input-secret | 缺少 Secret 參數。 |
invalid-input-secret | 密鑰參數無效或格式錯誤。 |
missing-input-response | 找不到回應參數。 |
invalid-input-response | 回應參數無效或格式錯誤。 |
錯誤的要求 | 要求無效或格式錯誤。 |
逾時或重複 | 回應已失效:太舊或之前使用過。 |