Kod pengesahan berdaftar untuk dijual: Bawa anda ke kod pengesahan SMS Alibaba Cloud (panduan praktikal proses penuh)
Ketika banyak orang berhubung dengan kod pengesahan SMS untuk pertama kalinya, mereka selalu bergumam di dalam hati mereka: semua jenis kunci, tandatangan, templat, dan SDK terdengar besar.
Sebenarnya, terdapat tiga langkah untuk berjaya menghantar SMS:
Pergi ke latar belakang Alibaba Cloud untuk memohon kelayakan, memanggil antara muka dalam kod, dan menangani anti-berus keselamatan.
Hari ini kita akan menggunakan bahasa yang paling berasas untuk menjelaskan proses ini secara menyeluruh. Sediakan akaun Alibaba Cloud anda, kami mulakan sekarang.
Daftar pembelian kod pengesahan
Tahap pertama: "Set tiga keping hooligan pelepasan kastam" di belakang pentas Alibaba Cloud
Pergi ke pentas Alibaba Cloud adalah seperti pergi ke pejabat untuk mendapatkan persetujuan. Anda harus mengambil tiga perkara berikut untuk mendapatkan kod.
1. Tandatangan (Siapa Anda)
Permulaan SMS
[Nama produk anda]
Ia adalah tandatangan. Untuk mengelakkan penipuan, negara ini sangat ketat dan tidak boleh menulis secara membuta tuli.
Panduan Mengelakkan Lubang: Sekiranya anda belum mendaftarkan syarikat, anda boleh membuat permohonan dengan nama laman web peribadi, APP atau applet WeChat yang sudah anda ada dalam talian. Sekiranya tidak ada apa-apa, kemungkinan besar tidak akan dikaji.
Kemahiran bertutur: Sebab permohonan berbunyi: "Ia digunakan untuk menghantar kod pengesahan ketika pengguna Aplikasi mendaftar dan log masuk. Ia dalam talian dan nama aplikasinya adalah XXX".
2. Templat (apa yang anda hantar)
Daftar pembelian kod pengesahan
Templat adalah kandungan khusus SMS. Templat kod pengesahan sangat mudah, biasanya:
Kod pengesahan ${code}, anda mendaftar sebagai pengguna baru, sah dalam masa 5 minit, jangan sampai kepada orang lain.
$ {Code} di sini adalah pemegang tempat, dan kod anda akan memuat naik nombor 4 atau 6 digit sebenar.
3. AccessKey (Pas anda)
Ini adalah yang paling kritikal. Ia mengandungi
ID AccessKey
Dan
AccessKey Secret
(Dirujuk sebagai AK/SK).
Pemahaman yang popular: Ini adalah akaun dan kata laluan anda di Alibaba Cloud. Anda mesti membawanya ke dalam kod, dan Alibaba Cloud tahu siapa yang harus memotong yuran pesanan ringkas ini.
Amaran keselamatan: Jangan sekali-kali memindahkan AccessKey ke GitHub! Jika tidak, akaun anda mungkin dimaksimumkan oleh penggodam dalam beberapa minit. Sebaiknya tuliskan dalam pemboleh ubah persekitaran global pelayan.
Tahap kedua: Jangan takut, kodnya!
Dengan "Tandatangan, Templat, AccessKey", kita boleh menulis kod. Berikut adalah yang paling biasa
Node.js
Dan
Python
Contohnya (logik bahasa lain sama persis).
Contoh 1: Versi Python
Pertama, pasang SDK rasmi Alibaba Cloud:
Bash
Pip install alibabacloud_dysmsapi20170525 = = 2.0.24
Kemudian, hantar kod terus ke teras:
Python
import os
Dari pelanggan
Dari a
Libabacloud_tea_openapi model import sebagai open_api_models
Dari alibabacloud_dysmsapi20170525 imort models sebagai dysms_api_models
Def send_sms_code(phone_number, code):
#1. Mulakan konfigurasi dan baca kunci pelepasan anda dari pemboleh ubah persekitaran
Config = open_api_models.Config (
Access_key_id = os.environ.get('ALIBABA _ CLOUD_ACCESS_KEY_ID '),
Access_key_secret = os.environ.get('ALIBABA _ CLOUD_ACCESS_KEY_SECRET ')
)
Alamat perkhidmatan tetap SMS # Alibaba Cloud
Config. endpoint = 'dysmsap.aliyuncs.com'
Client = Client(config)
#2. Memasang kandungan SMS anda
Request = dysms_api_models.SendSmsRequest (
Phone_number = phone_number, # nombor telefon bimbit yang menerima SMS
Sign_name = 'tandatangan SMS anda', # Contohnya: [Nota Geek]
Template_code = 'SMS _ 123456789 ', # ID templat yang anda lamar
Template_param = f '{{"code":"{code}"}' # Masukkan kod pengesahan rawak, mestilah rentetan JSON
)
#3. Hantar dan lihat hasilnya
cuba:
Respons = client.send_sms(request)
If response.body.code = = 'OK':
Cetak ("SMS berjaya dihantar! ")
Kembali Benar
Else:
Cetak (f"
Sebab kegagalan penghantaran:{response.body.message}")
Palsu
kecuali Exception sebagai ralat:
Cetak (f "ralat sistem:{error}")
Palsu
Contoh 2: Versi Node.js
Sekiranya anda menggunakan Node.js, masukkan beg ini:
Pembelian kod pengesahan SMS
Bash
Npm install @ alicloud/dysmsapi20170525
Kod teras adalah seperti berikut:
JavaScript
Const {default: Client, SendSsRequest} = require('@ alicloud/dysmsapi20170525');
Const Openapi = require('@ alicloud/openapi-client');
Async function sendSms(phone, code) {
Let config = Openapi baru. Config({
AccessKeyId: proses. env.ALICLOUD_ACCESS_KEY_ID,
AccessKeySecret: proses. env.ALICLOUD_ACCESS_KEY_SECRET,
Endpoint: 'dysmsapi .aliyuncs.com'
});
Let client = baru Client(config);
Let request = SendSsRequest baru ({
PhoneNumbers: phone,
SignName: 'Tandatangan SMS anda',
TemplateCode: 'SMS _ 123456789 ',
TemplateParam: JSON.stringify({ code: code })
});
Cuba {
Let result = pelanggan. sendSs (request);
If (result.body.code === 'OK') {
Cons
Ole. log ('Hantar sukar');
} Else {
Console. log ('Gagal: ', result.body.message);
}
} Catch (err) {
Console. error ('ralat dilaporkan: ', err);
}
}
Tahap ketiga: logik perniagaan lengkap semasa pengguna mendaftar (pemula mesti melihat)
Ramai pemula berpendapat bahawa sudah cukup untuk menyesuaikan antara muka di atas. Sebenarnya, dalam perniagaan sebenar, bahagian belakang anda masih banyak yang perlu dilakukan. Proses "pendaftaran kod pengesahan" standard adalah seperti ini:
[Nombor telefon bimbit pengguna] ───> 1. Periksa format nombor telefon bimbit ──> 2. Periksa frekuensi penghantaran (had 60 saat) ──> 3. Hasilkan nombor rawak 4-> 4. Simpan Redis dan tetapkan 5 minit untuk tamat tempoh ──> 5. Panggil Alibaba Cloud untuk menghantar
Mengapa anda perlu menggunakan Redis (atau cache pangkalan data)?
Kerana
Alibaba Cloud hanya bertanggungjawab untuk membantu anda menghantar mesej teks, ia tidak bertanggungjawab untuk membantu anda mengingat kod pengesahan!
Apabila pengguna menerima pesanan teks, masukkan di telefon
1234
Semasa mengklik Kirim, pelayan anda mesti mengetahui sama ada yang dihantar kepadanya baru sahaja dihantar
1234
。
Semasa menghantar: Hasilkan nombor rawak 1234, simpan di Redis, Kunci adalah sms:register:138xxxx0000, Nilai adalah 1234, dan tetapkan masa tamat selama 300 saat.
Semasa memeriksa: Pengguna menghantar 1234. Pergi ke bahagian belakang untuk memeriksa nilai sms:register:138xxxx0000 di Redis. Sekiranya ia betul, lulus; jika tidak betul atau tidak dapat dijumpai, kembalikan "Kod pengesahan salah atau kadaluarsa".
Tahap keempat: pertempuran anti-berus (jika anda tidak melihat bahagian ini, anda mungkin kehilangan seluar dalam anda)
Terdapat sekumpulan orang dalam lingkaran penggodam yang disebut "SMS Bomber". Mereka akan menggunakan skrip untuk memanggil antara muka pendaftaran anda dengan panik, yang dapat menghabiskan puluhan ribu pesanan teks dalam satu malam. Agar tidak dimanfaatkan, anda mesti menambah
Tiga firewall
。
Tahap perlindungan
Kaedah khusus
Mengapa ia berfungsi
Cara pertama: had masa
Nombor telefon bimbit tunggal hanya boleh dihantar sekali dalam 60 saat.
Memintas titik gegaran tangan berterusan di bahagian depan dan belakang.
Laluan kedua: kod pengesahan grafik
Sebelum mengklik "Dapatkan Kod Pengesahan", anda mesti terlebih dahulu meluncur atau memasukkan kod pengesahan gambar.
Kaedah yang paling berkesan. Sekat mesin skrip terus dari pintu.
Jalan ketiga: had jumlah
Dengan nombor telefon bimbit yang sama dan IP yang sama, sehingga 5 mesej dapat dihantar dalam 24 jam.
Walaupun dua barisan pertahanan pertama hilang, mereka dapat menghentikan kerugian dalam masa.
Nota tambahan: Latar belakang Alibaba Cloud dilengkapi dengan fungsi "perlindungan keselamatan sejagat". Ingatlah untuk pergi ke latar belakang untuk menetapkan "had penghantaran satu hari" lebih rendah (seperti 100
0 item). Dengan cara ini, jika kod tersebut ditulis bug atau disikat, ia akan mencair secara automatik apabila mencapai had, sehingga tidak akan merosakkan keluarga anda.
Formula penyahpepijatan dan penyelesaian masalah
Jangan panik apabila anda menjalankan kod dan mendapati ralat dilaporkan. Kod ralat Alibaba Cloud (SubCode) sebenarnya cukup jelas:
Pembelian kod pengesahan SMS
Isv. MOBILE_NUMBER_ILLEGAL: Format nombor telefon salah, periksa sama ada nombor 11 digit ditulis dengan tidak betul atau dicampurkan ke dalam ruang.
Isv. BUSINESS_LIMIT_CONTROL: Kekerapan pencetus adalah terhad. Ini menunjukkan bahawa anda terlalu kerap menguji dan dipintas buat sementara waktu oleh Alibaba Cloud. Tunggu satu minit untuk mencuba lagi.
Isv. SMS_SIGNATURE_ILLEGAL: Tandatangan tidak sah. Periksa sama ada tandatangan dalam kod anda salah dengan tandatangan yang diluluskan oleh latar belakang Alibaba Cloud (satu ruang lagi tidak akan berfungsi).
Pembelian kod pengesahan SMS

