Dalam demo ini, saya akan menggunakan bukti kelayakan Google ReCAPTCHA v3 dalam aplikasi React yang dibina pada Next.js. Token ReCAPTCHA akan dijana pada bahagian klien dan disahkan pada bahagian pelayan.
Pautan
Demo
Pangkalan kod
Langkah 1: Jana Bukti Kelayakan ReCAPTCHA Anda
Pergi ke Google ReCaptcha V3 dan jana bukti kelayakan anda.
Langkah 2: Import pustaka ReCaptcha
<Script src={`https://www.google.com/recaptcha/enterprise.js?render=${process.env.NEXT_PUBLIC_RE_CAPTCHA_SITE_KEY}`} />
Nota: Terdapat beberapa pakej yang boleh anda gunakan, tetapi pelaksanaannya mudah.
Langkah 3: Panggil kaedah laksana dalam pengendali klik anda
const loginClickHandler = (event) => { event.preventDefault(); grecaptcha.enterprise.ready(async () => { const token = await grecaptcha.enterprise.execute( process.env.NEXT_PUBLIC_RE_CAPTCHA_SITE_KEY, { action: "LOGIN" } ); await submit(token); }); };
grecaptcha ialah objek yang disuntik oleh skrip yang diimport.
Nota: Apabila menggunakan Next.js, pastikan semua pembolehubah persekitaran yang terdedah dalam penyemak imbas diawali dengan NEXT_PUBLIC.
Apabila pengguna mengklik log masuk, apl menjana captcha secara automatik untuk mereka dengan memanggil dua kaedah daripada objek grecaptcha:
- window.grecaptcha.enterprise.ready: Ini memastikan objek Google reCAPTCHA sedia untuk digunakan.
- window.grecaptcha.enterprise.execute: Ini menjana token captcha.
Akhir sekali, data dihantar ke bahagian belakang (dalam kes saya, saya menggunakan fungsi Lambda), bersama-sama dengan token captcha yang dijana.
const submit = async (code) => { await fetch("`/.netlify/functions/react-recaptcha-v3-nextjs", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ code }), }); };
Nota: Jika anda menggunakan borang, anda juga akan memasukkan nilai medan lain seperti nama pengguna, nama atau sebarang data tambahan yang dikumpulkan oleh borang anda.
Langkah 4: Sahkan Captcha pada Bahagian Belakang
const validateReCaptcha = async (captcha) => { const url = `https://www.google.com/recaptcha/api/siteverify?secret=${process.env.RE_CAPTCHA_SECRET_KEY}&response=${captcha}`; const response = await fetch(url, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ captcha }), }); return response.json(); };
validateReCaptcha ialah kaedah hujung belakang yang memanggil titik akhir API Google, menghantar SECRET_KEY (disimpan sebagai pembolehubah persekitaran) dan token Captcha yang dijana pada klien.
Jika Captcha sah, respons API akan kelihatan seperti ini:
{ "success": true, "challenge_ts": "2024-11-24T03:04:34Z", "hostname": "localhost", "score": 0.9 }
Kesimpulan
ReCaptcha adalah penting untuk mendapatkan borang, terutamanya apabila anda ingin menghalang bot daripada menyerahkannya. Google menawarkan peringkat percuma yang menyediakan sehingga 10,000 penilaian setiap bulan (pada masa penulisan), menjadikannya pilihan yang kukuh untuk banyak aplikasi. Penyepaduan menjadi lebih mudah dengan perpustakaan yang disediakan oleh google. Anda hanya perlu menyerahkan bukti kelayakan anda: SITE_KEY pada bahagian klien dan SECRET_KEY pada bahagian pelayan.
Perkara penting yang perlu diingat ialah SECRET_KEY tidak boleh didedahkan pada pihak pelanggan, kerana ini boleh menjejaskan keselamatan aplikasi anda. Hanya SITE_KEY ditujukan untuk pelanggan.
Atas ialah kandungan terperinci Reaksi: ReCAPTCHA vlient dan Demo Pelayan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Java dan JavaScript adalah bahasa pengaturcaraan yang berbeza, masing -masing sesuai untuk senario aplikasi yang berbeza. Java digunakan untuk pembangunan aplikasi perusahaan dan mudah alih yang besar, sementara JavaScript digunakan terutamanya untuk pembangunan laman web.

JavaScriptcommentsareessentialformaintaining,reading,andguidingcodeexecution.1)Single-linecommentsareusedforquickexplanations.2)Multi-linecommentsexplaincomplexlogicorprovidedetaileddocumentation.3)Inlinecommentsclarifyspecificpartsofcode.Bestpractic

Titik berikut harus diperhatikan apabila tarikh pemprosesan dan masa di JavaScript: 1. Terdapat banyak cara untuk membuat objek tarikh. Adalah disyorkan untuk menggunakan rentetan format ISO untuk memastikan keserasian; 2. Dapatkan dan tetapkan maklumat masa boleh diperoleh dan tetapkan kaedah, dan ambil perhatian bahawa bulan bermula dari 0; 3. Tarikh pemformatan secara manual memerlukan rentetan, dan perpustakaan pihak ketiga juga boleh digunakan; 4. Adalah disyorkan untuk menggunakan perpustakaan yang menyokong zon masa, seperti Luxon. Menguasai perkara -perkara utama ini secara berkesan dapat mengelakkan kesilapan yang sama.

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScriptispreferredforwebdevelopment, whersjavaisbetterforlarge-scalebackendsystemsandandroidapps.1) javascriptexcelsinceleatinginteractiveWebexperienceswithitsdynamicnatureanddommanipulation.2) javaoffersstrongyblectionandobjection

JavascripthassevenfundamentalDatypes: nombor, rentetan, boolean, undefined, null, objek, andsymbol.1) numberuseadouble-precisionformat, bergunaforwidevaluangesbutbecautiouswithfloating-pointarithmetic.2)

Penangkapan dan gelembung acara adalah dua peringkat penyebaran acara di Dom. Tangkap adalah dari lapisan atas ke elemen sasaran, dan gelembung adalah dari elemen sasaran ke lapisan atas. 1. Penangkapan acara dilaksanakan dengan menetapkan parameter useCapture addeventlistener kepada benar; 2. Bubble acara adalah tingkah laku lalai, useCapture ditetapkan kepada palsu atau ditinggalkan; 3. Penyebaran acara boleh digunakan untuk mencegah penyebaran acara; 4. Acara menggelegak menyokong delegasi acara untuk meningkatkan kecekapan pemprosesan kandungan dinamik; 5. Penangkapan boleh digunakan untuk memintas peristiwa terlebih dahulu, seperti pemprosesan pembalakan atau ralat. Memahami kedua -dua fasa ini membantu mengawal masa dan bagaimana JavaScript bertindak balas terhadap operasi pengguna.

Java dan JavaScript adalah bahasa pengaturcaraan yang berbeza. 1.Java adalah bahasa yang ditaip dan disusun secara statik, sesuai untuk aplikasi perusahaan dan sistem besar. 2. JavaScript adalah jenis dinamik dan bahasa yang ditafsirkan, terutamanya digunakan untuk interaksi web dan pembangunan front-end.
