การขายรหัสยืนยันการลงทะเบียน: จับมือคุณเพื่อเข้าถึงรหัสยืนยันทาง SMS ของ Alibaba Cloud (คู่มือการปฏิบัติแบบเต็มกระบวนการ)
หลายคนมักจะพึมพำในใจเมื่อพวกเขาเชื่อมต่อกับรหัสยืนยันทาง SMS เป็นครั้งแรก: คีย์ต่างๆลายเซ็นเทมเพลต SDK ฟังดูใหญ่
ในความเป็นจริงมีสามขั้นตอนในการส่ง SMS ให้สำเร็จ:
ไปที่พื้นหลัง Alibaba Cloud เพื่อสมัครคุณสมบัติเรียกอินเทอร์เฟซในโค้ดและจัดการกับความปลอดภัยและการป้องกันการแปรงฟัน
วันนี้เราจะใช้ภาษาที่มีเหตุผลที่สุดเพื่อชี้แจงกระบวนการนี้อย่างละเอียดเตรียมบัญชีอาลีบาบาคลาวด์ของคุณและเราจะเริ่มต้นในขณะนี้
ลงทะเบียนเพื่อซื้อรหัสยืนยัน
ขั้นตอนแรก: "ชุดสูทสามชิ้นสำหรับการกวาดล้างอันธพาล" ในพื้นหลังของ Alibaba Cloud
การไปที่พื้นหลังของ Alibaba Cloud ก็เหมือนกับการไปที่ห้องบริการเพื่อขออนุมัติคุณต้องใช้สามสิ่งต่อไปนี้เพื่อให้รหัสทำงานได้
1.ลายเซ็น (คุณเป็นใคร)
เริ่มต้นด้วย SMS
[ชื่อผลิตภัณฑ์ของคุณ]
มันคือลายเซ็นรัฐเข้มงวดมากในการป้องกันการฉ้อโกงและไม่สามารถเขียนได้
คำแนะนำในการหลีกเลี่ยงหลุม: หากคุณยังไม่ได้จดทะเบียนบริษัทคุณสามารถใช้ชื่อของเว็บไซต์ส่วนตัวแอปหรือแอพเพล็ต WeChat ที่คุณออนไลน์ได้หากไม่มีอะไรเป็นไปได้ว่าจะไม่ได้รับการตรวจสอบ
ทักษะการพูด: เหตุผลในการสมัครระบุว่า: "ใช้ในการส่งรหัสยืนยันเมื่อผู้ใช้แอปลงทะเบียนและเข้าสู่ระบบออนไลน์ชื่อแอปคือ XXX"
2.เทมเพลต (คุณโพสต์อะไร)
ลงทะเบียนเพื่อซื้อรหัสยืนยัน
เทมเพลตเป็นเนื้อหาเฉพาะของ SMS เทมเพลตรหัสยืนยันนั้นง่ายมากโดยทั่วไป:
รหัสยืนยัน ${code} คุณกำลังลงทะเบียนเป็นผู้ใช้ใหม่ใช้ได้ภายใน5นาทีโปรดอย่าเปิดเผยให้ผู้อื่นทราบ
$ {Code} ที่นี่เป็นตัวยึดและรหัสของคุณจะส่งผ่านตัวเลข4หลักหรือ6หลักจริง
3. AccessKey (ผ่านของคุณ)
นี่คือสิ่งที่สำคัญที่สุดมันมี
AccessKey ID
และ
AccessKey Secret
(เรียกว่า AK/SK)
ความเข้าใจที่เป็นที่นิยม: เป็นบัญชีและรหัสผ่านของคุณใน Alibaba Cloud คุณต้องนำมาในรหัสเพื่อให้ Alibaba Cloud รู้ว่าใครควรหักค่าธรรมเนียม SMS นี้
คำเตือนด้านความปลอดภัย: อย่าส่ง AccessKey ไปที่ GitHub! มิฉะนั้นบัญชีของคุณอาจถูกแฮ็กเกอร์ระเบิดภายในไม่กี่นาทีขอแนะนำให้เขียนในตัวแปรสภาพแวดล้อมส่วนกลางของเซิร์ฟเวอร์
ขั้นตอนที่สอง: ไม่ต้องกลัวไปที่รหัส!
ด้วย "ลายเซ็นเทมเพลต AccessKey" เราสามารถเขียนโค้ดได้นี่คือสิ่งที่พบบ่อยที่สุด
Node.js
และ
งูหลาม
ตัวอย่างเช่น (ตรรกะของภาษาอื่นเหมือนกันทุกประการ)
ตัวอย่างที่1: งูหลามรุ่น
ก่อนอื่นให้ติดตั้ง SDK อย่างเป็นทางการของ Alibaba Cloud:
แบช
Pip install alibabacloud_dysmsapi20170525 = = 2.0.24
จากนั้นส่งรหัสไปที่แกนโดยตรง:
งูหลาม
นำเข้า os
From alibabacloud_dysmsapi20170525.client import Client
From a
Libabacloud_tea_openapi import models as open_api_models
From alibabacloud_dysmsapi20170525 import models as dysms_api_models
Def send_sms_code(phone_number, code):
#1.เริ่มต้นการกำหนดค่าเพื่ออ่านคีย์พิธีการศุลกากรของคุณจากตัวแปรสภาพแวดล้อม
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 ')
)
# ที่อยู่บริการคงที่ของ Alibaba Cloud SMS
Config.endpoint = 'dysmsapi .aliyuncs.com'
Client = Client(config)
#2.ประกอบเนื้อหา SMS ของคุณ
Request = dysms_api_models.SendSmsRequest (
Phone_numbers = phone_number, # รับ SMS จากหมายเลขโทรศัพท์มือถือ
Sign_name = 'ลายเซ็น SMS ของคุณ', # ตัวอย่างเช่น: [Geek Notes]
Template_code = 'SMS _ 123456789 ', # คุณสมัครลงรหัสแม่แบบ
Template_param = f '{{"code":"{code}"}' # ใส่รหัสยืนยันแบบสุ่มต้องเป็นสตริง JSON
)
#3.ส่งและดูผล
ลอง:
Response = client. send_sms(request)
If response.body.code = = 'OK':
พิมพ์ ("ส่ง SMS สำเร็จ! ")
Return True
Else:
พิมพ์ (f"
ส่งไม่สำเร็จสาเหตุ: {response.body.message}
ส่งคืน False
ยกเว้น Exception เป็น error:
print(f"ระบบเกิดข้อผิดพลาด: {error}")
ส่งคืน False
ตัวอย่างที่สอง: เวอร์ชัน Node.js
ถ้าคุณใช้ Node.js, แพคเกจนี้:
การซื้อรหัสยืนยันทาง SMS
แบช
npm install @alicloud/dysmsapi20170525
รหัสหลักมีดังนี้:
จาวาสคริปต์
Const {default: Client, SendSmsRequest } = require('@alicloud/dysmsapi20170525');
const OpenApi = require('@alicloud/openapi-client');
Async function sendSms(phone, code) {
ให้ config = new OpenApi.Config({
accessKeyId: process.env.ALICLOUD_ACCESS_KEY_ID,
accessKeySecret: process.env.ALICLOUD_ACCESS_KEY_SECRET,
Endpoint: 'dysmsapi .aliyuncs.com'
});
ให้ client = new Client(config);
Let request = new SendSmsRequest({
หมายเลขโทรศัพท์: โทรศัพท์,
ชื่อการลงนาม: 'ลายเซ็นข้อความของคุณ',
templateCode: 'SMS_123456789',
templateParam: JSON.stringify({ code: code })
});
ลอง {
ให้ผลลัพธ์เท่ากับ await client.sendSms(request);
if (result.body.code === 'OK') {
ข้อเสีย
Ole.log ('ส่งสำเร็จ');
} Else {
Console.log ('ล้มเหลว:', result.body.message);
}
} Catch (err) {
Console.error ('ข้อผิดพลาด:', err);
}
}
ขั้นตอนที่สาม: ตรรกะทางธุรกิจที่สมบูรณ์เมื่อผู้ใช้ลงทะเบียน (มือใหม่ต้องดู)
สามเณรหลายคนคิดว่าการปรับอินเทอร์เฟซด้านบนเสร็จแล้วในความเป็นจริงในธุรกิจจริงมีหลายสิ่งที่ต้องทำในแบ็คเอนด์ของคุณขั้นตอน "การลงทะเบียนรหัสยืนยัน" มาตรฐานมีลักษณะดังนี้:
[หมายเลขโทรศัพท์มือถือของผู้ใช้] ──> 1.ตรวจสอบรูปแบบหมายเลขโทรศัพท์มือถือ ──> 2.ตรวจสอบความถี่ในการส่ง (ขีดจำกัด60วินาที) ──> 3.สร้างตัวเลขสุ่ม4หลัก ──> 4.ฝาก Redis และตั้งค่า5นาทีหมดอายุ ──> 5.โทรหา Alibaba Cloud เพื่อส่ง
ทำไมต้องใช้ Redis (หรือแคชฐานข้อมูล)?
เพราะ
Alibaba Cloud มีหน้าที่ช่วยคุณส่งข้อความเท่านั้นแต่ไม่รับผิดชอบในการช่วยคุณจดจำรหัสยืนยัน!
เมื่อผู้ใช้ได้รับข้อความให้พิมพ์บนโทรศัพท์
1234
เมื่อคุณคลิกส่งเซิร์ฟเวอร์ของคุณจะต้องทราบว่าตอนนี้ส่งให้เขาหรือไม่
1234
。
เมื่อส่ง: สร้างตัวเลขสุ่ม1234ฝาก Redis คีย์คือ sms:register:138xxxx0000,Value คือ1234และตั้งเวลาหมดอายุ300วินาที
เมื่อตรวจสอบ: ผู้ใช้ส่ง1234กลับไปที่ Redis เพื่อตรวจสอบ sms:register:138xxxx0000ค่าหากถูกต้องให้ผ่านหากไม่ถูกต้องหรือไม่พบให้ส่งคืน "รหัสยืนยันไม่ถูกต้องหรือหมดอายุ"
ขั้นตอนที่สี่: การต่อสู้ต่อต้านการแปรงฟัน (หากคุณไม่ดูส่วนนี้คุณอาจสูญเสียชุดชั้นในของคุณ)
มีกลุ่มคนในแวดวงแฮ็กเกอร์ที่เรียกว่า "SMS Bomber" พวกเขาจะใช้สคริปต์เพื่อเรียกใช้อินเทอร์เฟซการลงทะเบียนของคุณอย่างบ้าคลั่งซึ่งสามารถใช้ข้อความของคุณได้หลายหมื่นข้อความในคืนเดียวเพื่อไม่ให้ถูกเอาเปรียบคุณต้องเพิ่ม
ไฟร์วอลล์สามช่อง
。
ระดับการป้องกัน
วิธีการเฉพาะ
ทำไมถึงได้ผล
วิธีแรก: การจำกัดเวลา
หมายเลขโทรศัพท์มือถือเดียวสามารถส่งได้เพียงครั้งเดียวภายใน60วินาที
สกัดกั้นการสั่นอย่างต่อเนื่องของส่วนหน้าและส่วนหลัง
วิธีที่สอง: รหัสยืนยันกราฟิก
ก่อนคลิก "รับรหัสยืนยัน" คุณต้องเลื่อนหรือป้อนรหัสยืนยันรูปภาพก่อน
วิธีที่มีประสิทธิภาพสูงสุดปิดกั้นเครื่องที่เขียนสคริปต์ออกจากประตูโดยตรง
วิธีที่สาม: ขีดจำกัดทั้งหมด
หมายเลขโทรศัพท์มือถือเดียวกันและ IP เดียวกันสามารถส่งได้สูงสุด5หมายเลขภายใน24ชั่วโมง
แม้ว่าสองแนวป้องกันแรกจะหายไปแต่ก็สามารถหยุดการสูญเสียได้ทันเวลา
หมายเหตุเพิ่มเติม: พื้นหลัง Alibaba Cloud มาพร้อมกับฟังก์ชัน "การป้องกันความปลอดภัยทั่วไป" อย่าลืมไปที่พื้นหลังและตั้งค่า "ขีดจำกัดการส่งวันเดียว" ให้ต่ำลง (เช่น100
0รายการ) ด้วยวิธีนี้หากรหัสเขียนข้อบกพร่องหรือถูกปัดมันจะเป่าโดยอัตโนมัติเมื่อถึงขีดจำกัดเพื่อไม่ให้คุณล้มละลาย
สูตรการแก้จุดบกพร่อง
อย่าตกใจเมื่อคุณเรียกใช้รหัสและพบข้อผิดพลาดรหัสข้อผิดพลาดของ Alibaba Cloud ค่อนข้างชัดเจน:
การซื้อรหัสยืนยันทาง SMS
Isv. MOBILE_NUMBER_ILLEGAL: รูปแบบหมายเลขโทรศัพท์มือถือไม่ถูกต้องตรวจสอบว่าตัวเลข11หลักเขียนผิดหรือผสมลงในช่องว่าง
Isv. BUSINESS_LIMIT_CONTROL: จำกัดความถี่ทริกเกอร์หมายความว่าคุณทดสอบบ่อยเกินไปและถูก Alibaba Cloud ดักฟังชั่วคราวรอสักครู่แล้วลองอีกครั้ง
Isv. SMS_SIGNATURE_ILLEGAL: ลายเซ็นผิดกฎหมายตรวจสอบลายเซ็นในรหัสของคุณว่ามีคำผิดกับลายเซ็นที่ได้รับการอนุมัติโดยพื้นหลังของ Alibaba Cloud หรือไม่ (ไม่สามารถใช้ช่องว่างเพิ่มเติมได้)
การซื้อรหัสยืนยันทาง SMS

