Menguji kata laluan sekali sahaja (OTP) boleh menjadi sangat menyakitkan, bukan? Sentiasa menyelak antara apl dan peti masuk SMS anda, mencari kod... Sudah tiba masanya kita membetulkannya. Mari kita bincangkan tentang mengautomasikan keseluruhan proses menggunakan alatan yang hanya menyelesaikan kerja. Ya, kami juga akan menggunakan nombor telefon sementara, tetapi kami akan memastikannya tenang dan menumpukan pada nilai sebenar untuk aliran kerja pembangun anda.
Begini cara anda boleh meningkatkan permainan OTP anda dengan alatan seperti Penulis Drama, Puppeteer, Selenium dan sedikit kreativiti. Tidak kira timbunan anda, anda akan menemui beberapa nugget di sini.
Dapatkan beberapa nombor telefon sementara secara pengaturcaraan, rampas OTP melalui API dan automatik yang lain. Tiada lagi bolak-balik, tiada lagi drama. Anda akan kelihatan seperti ahli sihir semasa semakan pecut.
Terdapat banyak perkhidmatan di luar sana untuk nombor telefon sementara, jadi mengapa memilih Quackr.io? Inilah tawarannya:
Kami telah menggunakan Quackr.io kerana ia menandakan semua kotak ini. Anda dialu-alukan untuk mencuba orang lain, tetapi jika anda mencari sesuatu yang boleh dipercayai, Quackr.io ialah titik permulaan yang bagus.
Begini cara anda boleh membina skrip automasi OTP. Anggap ia sebagai titik permulaan—jadikan ia milik anda.
Mula-mula, daftar dengan perkhidmatan yang menyediakan nombor telefon sementara (kami menggunakan Quackr.io). Dapatkan kunci API anda dan mari bergegas.
Jika anda menggegarkan Node.js, anda memerlukan beberapa pakej:
npm install playwright axios dotenv
Berikut ialah contoh menggunakan Penulis Drama dan Axios. Jangan ragu untuk menyesuaikannya untuk persediaan anda.
const { chromium } = require('playwright'); const axios = require('axios'); require('dotenv').config(); (async () => { const browser = await chromium.launch(); const page = await browser.newPage(); // Fetch a temporary phone number const phoneResponse = await axios.get('https://quackr.io/api/phones', { headers: { 'Authorization': `Bearer ${process.env.API_KEY}` } }); const phoneNumber = phoneResponse.data.number; console.log(`Using phone number: ${phoneNumber}`); // Simulate your app’s signup flow await page.goto('https://yourapp.com/signup'); await page.fill('#phone-input', phoneNumber); await page.click('#send-otp'); // Wait for the OTP let otp; while (!otp) { const messages = await axios.get(`https://quackr.io/api/messages?phone=${phoneNumber}`, { headers: { 'Authorization': `Bearer ${process.env.API_KEY}` } }); const otpMessage = messages.data.find(msg => msg.body.includes('Your OTP is')); if (otpMessage) { otp = otpMessage.body.match(/\d{6}/)[0]; console.log(`Got OTP: ${otp}`); } else { console.log('Waiting for OTP...'); await new Promise(resolve => setTimeout(resolve, 2000)); } } // Enter the OTP and complete verification await page.fill('#otp-input', otp); await page.click('#verify-otp'); console.log('OTP verification done!'); await browser.close(); })();
Gunakan fail .env untuk kunci API anda. Contoh:
API_KEY=your_api_key_here
Anda boleh melanjutkan persediaan ini untuk:
Ini hanya menconteng permukaan. Mengautomasikan OTP boleh menjimatkan banyak masa dan menjadikan ujian anda berasa digilap. Jika anda mempunyai idea untuk menjadikannya lebih baik, saya ingin mendengarnya. Ada sebarang helah hebat untuk mengendalikan OTP? Letakkannya di bawah—mari belajar daripada satu sama lain!
Atas ialah kandungan terperinci Automatikkan Ujian Kata Laluan Satu Masa (OTP): Panduan Santai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!