Rumah > hujung hadapan web > tutorial js > Automatikkan Ujian Kata Laluan Satu Masa (OTP): Panduan Santai

Automatikkan Ujian Kata Laluan Satu Masa (OTP): Panduan Santai

Patricia Arquette
Lepaskan: 2024-12-18 06:01:11
asal
821 orang telah melayarinya

Automate One-Time Password (OTP) Testing: A Casual Guide

Automatikkan Ujian Kata Laluan Satu Masa (OTP): Panduan Santai

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.


Mengapa Bersusah-susah Mengautomasikan OTP?

Perjuangan Biasa

  • Bertukar antara ujian anda dan peti masuk SMS
  • Salin-tampal seperti tahun 2005
  • Menguji pada berbilang peranti? Ugh.

Pembetulan Pintar

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.


Mengapa Quackr.io?

Terdapat banyak perkhidmatan di luar sana untuk nombor telefon sementara, jadi mengapa memilih Quackr.io? Inilah tawarannya:

  • Pantas dan Boleh Dipercayai: Quackr.io menghantar mesej SMS dalam beberapa saat, iaitu apa yang anda perlukan semasa menguji aliran OTP.
  • API Mudah: API mereka sangat mudah untuk disepadukan—anda akan siap dan berjalan dalam masa yang singkat.
  • Nombor Global: Uji dengan nombor dari negara berbeza untuk meliputi kes penggunaan serantau.
  • Pelan Mampu Milik: Sesuai untuk pembangun dan pasukan yang mahukan penyelesaian kos efektif tanpa mengorbankan kualiti.

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.


Apa yang Anda Perlukan

  • Nombor Telefon Sementara: Sebarang perkhidmatan yang boleh dipercayai akan berjaya. (Kami akan menggunakan Quackr.io di sini kerana ia berfungsi dengan baik.)
  • Klien HTTP Kegemaran Anda: Axios? Ambil? Panggilan anda.
  • Rangka Kerja Pengujian: Penulis drama, Puppeteer, Selenium... apa sahaja yang anda suka.
  • Node.js: Kerana mengapa tidak?

Bahagian yang menyeronokkan: Mengekodkannya

Begini cara anda boleh membina skrip automasi OTP. Anggap ia sebagai titik permulaan—jadikan ia milik anda.

Langkah 1: Dapatkan Nombor Telefon Sementara

Mula-mula, daftar dengan perkhidmatan yang menyediakan nombor telefon sementara (kami menggunakan Quackr.io). Dapatkan kunci API anda dan mari bergegas.

Langkah 2: Pasang Beberapa Asas

Jika anda menggegarkan Node.js, anda memerlukan beberapa pakej:

npm install playwright axios dotenv
Salin selepas log masuk

Langkah 3: Skrip

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();
})();
Salin selepas log masuk

Langkah 4: Simpan Rahsia Anda... Rahsia

Gunakan fail .env untuk kunci API anda. Contoh:

API_KEY=your_api_key_here
Salin selepas log masuk

Petua Bonus

  1. Jalankan Ujian Selari: Gunakan berbilang nombor telefon untuk mempercepatkan perkara.
  2. Mock It for CI: Simpan beberapa panggilan API semasa CI/CD dengan mengejek aliran OTP.
  3. Kekal Berdaya Tahan: Tambahkan percubaan semula untuk isu rangkaian yang tidak stabil.
  4. Log Semuanya: Jejaki OTP dan respons untuk nyahpepijat.

Apa Seterusnya?

Anda boleh melanjutkan persediaan ini untuk:

  • Pengesahan Dua Faktor (2FA)
  • Ujian pengesahan nombor telefon
  • Aliran onboarding yang lancar

Fikiran Akhir

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan