Einmalige PIN (OTP) SMS-Verifizierung
Eine häufige Methode zur Überprüfung der Telefonnummer eines Benutzers ist die Anforderung des OTP (One-Time-Password), das per SMS zugestellt wird.
Es gibt mehrere Möglichkeiten, eine Telefonnummer zu verifizieren, aber eine der häufigsten ist das Senden einer SMS mit einer zufällig generierten Einmal-PIN (OTP). Die Übermittlung dieses Codes an die Website des Unternehmens zeigt den Besitz der Telefonnummer.
So verwenden Sie die OTP-SMS-Verifizierung
Es gibt mehrere Möglichkeiten, wie SMS OTP verwendet werden kann
Überprüfung der Telefonnummer
Einige Dienste verwenden eine Telefonnummer als Hauptmethode zur Identifizierung eines Benutzers. In diesen Diensten können Benutzer nachweisen, wer sie sind, indem sie ihre Telefonnummer und das Einmalpasswort (OTP) eingeben, das sie per SMS erhalten
Zwei-Faktor-Authentifizierung
Zusammen mit dem Benutzernamen und dem Passwort kann das SMS-OTP (oder SMS 2FA) ein starkes Zeichen dafür sein, dass das Konto der Person gehört, die das SMS-OTP erhalten hat.
Kontowiederherstellung
Wenn eine Person den Zugriff auf ihr Konto verliert, muss sie in der Lage sein, es wiederherzustellen. Das Senden einer E-Mail an ihre registrierte Adresse oder eine SMS OTP an ihr Telefon ist eine häufige Option zur Kontowiederherstellung
Zahlungsbestätigung
Aus Sicherheitsgründen bitten einige Banken oder Kreditkartenunternehmen die Person, die die Zahlung vornimmt, um einen weiteren Identitätsnachweis. OTP SMS wird in der Regel für diesen Zweck verwendet
OTP-SMS mit eigenen Einstellungen versenden
Stellen Sie sicher, dass Ihre SMS-OTP-Nachricht genau so ist, wie Sie es möchten. Anpassungsoptionen für Einmalpasswörter (OTPs) informieren Ihre Empfänger darüber, wer die SMS gesendet hat, und Sie können die Sicherheitsparameter für jedes generierte Kennwort festlegen.
OTP per SMS gesendet
SMS ist bekannt dafür, zuverlässig zu sein, da 98% der Menschen es innerhalb von 30 Sekunden öffnen. Das Senden von Einmalpasswörtern per SMS stellt sicher, dass Sie Ihre Benutzer überall erreichen. Auch wenn Benutzer keinen Internetzugang haben, können sie diese OTP-Lösung nutzen.
Codebeispiele für OTP SMS API
Integrieren Sie unsere fortschrittliche OTP SMS API in Ihre Anwendung und beginnen Sie in wenigen Minuten mit der Überprüfung von Telefonnummern.
Mit unseren offiziellen API-Wrappern und Client-Bibliotheken können Sie schnell loslegen. Sie sind mit gängigen Sprachen wie Python, PHP, Node.js, Java und anderen verfügbar.
Es gibt keine Clientbibliothek für Ihre Sprache? Verwenden Sie eine generische HTTP-Bibliothek Ihrer Wahl - es ist ganz einfach.
curl --request POST \ --url https://api.sms.cx/otp \ --header 'Authorization: Bearer REPLACE_ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data-raw '{ "phoneNumber": "+336124241xx", "from": "Verify", "template": "Your verification code is {{pin}}", "template_fr": "Votre code de vérification est {{pin}}", "template_de": "Ihr Bestätigungscode lautet {{pin}}", "template_es": "Tu código de verificación es {{pin}}", "template_it": "Il tuo codice di verifica è {{pin}}", "template_bg": "Вашият код за потвърждение е {{pin}}", "ttl": 600, "maxAttempts": 6, "pinType": "numbers", "pinLength": 5, "otpCallbackUrl": "https://my-callback/receive-otp-status" }'
import requests url = "https://api.sms.cx/otp" payload = { "phoneNumber": "+336124241xx", "from": "Verify", "template": "Your verification code is {{pin}}", "template_fr": "Votre code de vérification est {{pin}}", "template_de": "Ihr Bestätigungscode lautet {{pin}}", "template_es": "Tu código de verificación es {{pin}}", "template_it": "Il tuo codice di verifica è {{pin}}", "template_bg": "Вашият код за потвърждение е {{pin}}", "ttl": 300, "maxAttempts": 5, "pinType": "numbers", "pinLength": 5, "otpCallbackUrl": "https://my-callback/receive-otp-status" } headers = { "Content-Type": "application/json", "Authorization": "Bearer REPLACE_ACCESS_TOKEN" } response = requests.request("POST", url, json=payload, headers=headers) print(response.text)
require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sms.cx/otp") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new(url) request["Content-Type"] = 'application/json' request["Authorization"] = 'Bearer REPLACE_ACCESS_TOKEN' request.body = '{"phoneNumber":"+336124241xx","from":"Verify","template":"Your verification code is {{pin}}","template_fr":"Votre code de vérification est {{pin}}","template_de":"Ihr Bestätigungscode lautet {{pin}}","template_es":"Tu código de verificación es {{pin}}","template_it":"Il tuo codice di verifica è {{pin}}","template_bg":"Вашият код за потвърждение е {{pin}}","ttl":600,"maxAttempts":6,"pinType":"numbers","pinLength":5,"otpCallbackUrl":"https://my-callback/receive-otp-status"}' response = http.request(request) puts response.read_body
const data = JSON.stringify({ "phoneNumber": "+336124241xx", "from": "Verify", "template": "Your verification code is {{pin}}", "template_fr": "Votre code de vérification est {{pin}}", "template_de": "Ihr Bestätigungscode lautet {{pin}}", "template_es": "Tu código de verificación es {{pin}}", "template_it": "Il tuo codice di verifica è {{pin}}", "template_bg": "Вашият код за потвърждение е {{pin}}", "ttl": 300, "maxAttempts": 5, "pinType": "numbers", "pinLength": 5, "otpCallbackUrl": "https://my-callback/receive-otp-status" }); const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("POST", "https://api.sms.cx/otp"); xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_ACCESS_TOKEN"); xhr.send(data);
const http = require("https"); const options = { "method": "POST", "hostname": "api.sms.cx", "port": null, "path": "/otp", "headers": { "Content-Type": "application/json", "Authorization": "Bearer REPLACE_ACCESS_TOKEN" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({ phoneNumber: '+336124241xx', from: 'Verify', template: 'Your verification code is {{pin}}', template_fr: 'Votre code de vérification est {{pin}}"', template_de: 'Ihr Bestätigungscode lautet {{pin}}', template_es: 'Tu código de verificación es {{pin}}', template_it: 'Il tuo codice di verifica è {{pin}}', template_bg: 'Вашият код за потвърждение е {{pin}}', ttl: 300, maxAttempts: 5, pinType: 'numbers', pinLength: 5, otpCallbackUrl: 'https://my-callback/receive-otp-status' })); req.end();
<?php $curl = curl_init(); $payload = [ "phoneNumber" => "+336124241xx", "from" => "Verify", "template" => "Your verification code is {{pin}}", "template_fr" => "Votre code de vérification est {{pin}}", "template_de" => "Ihr Bestätigungscode lautet {{pin}}", "template_es" => "Tu código de verificación es {{pin}}", "template_it" => "Il tuo codice di verifica è {{pin}}", "template_bg" => "Вашият код за потвърждение е {{pin}}", "ttl" => 600, "maxAttempts" => 6, "pinType" => "numbers", "pinLength" => 5, "otpCallbackUrl" => "https://my-callback/receive-otp-status", ]; curl_setopt_array($curl, [ CURLOPT_URL => "https://api.sms.cx/otp", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode($payload), CURLOPT_HTTPHEADER => [ "Authorization: Bearer REPLACE_ACCESS_TOKEN", "Content-Type: application/json" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"phoneNumber\":\"+336124241xx\",\"from\":\"Verify\",\"template\":\"Your verification code is {{pin}}\",\"template_fr\":\"Votre code de v\u00E9rification est {{pin}}\",\"template_de\":\"Ihr Best\u00E4tigungscode lautet {{pin}}\",\"template_es\":\"Tu c\u00F3digo de verificaci\u00F3n es {{pin}}\",\"template_it\":\"Il tuo codice di verifica \u00E8 {{pin}}\",\"template_bg\":\"\u0412\u0430\u0448\u0438\u044F\u0442 \u043A\u043E\u0434 \u0437\u0430 \u043F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u0435 {{pin}}\",\"ttl\":600,\"maxAttempts\":6,\"pinType\":\"numbers\",\"pinLength\":5,\"otpCallbackUrl\":\"https:\/\/my-callback\/receive-otp-status\"}"); Request request = new Request.Builder() .url("https://api.sms.cx/otp") .post(body) .addHeader("Content-Type", "application/json") .addHeader("Authorization", "Bearer REPLACE_ACCESS_TOKEN") .build(); Response response = client.newCall(request).execute();
var client = new RestClient("https://api.sms.cx/otp"); var request = new RestRequest(Method.POST); request.AddHeader("Content-Type", "application/json"); request.AddHeader("Authorization", "Bearer REPLACE_ACCESS_TOKEN"); request.AddParameter("application/json", "{\"phoneNumber\":\"+336124241xx\",\"from\":\"Verify\",\"template\":\"Your verification code is {{pin}}\",\"template_fr\":\"Votre code de v\u00E9rification est {{pin}}\",\"template_de\":\"Ihr Best\u00E4tigungscode lautet {{pin}}\",\"template_es\":\"Tu c\u00F3digo de verificaci\u00F3n es {{pin}}\",\"template_it\":\"Il tuo codice di verifica \u00E8 {{pin}}\",\"template_bg\":\"\u0412\u0430\u0448\u0438\u044F\u0442 \u043A\u043E\u0434 \u0437\u0430 \u043F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u0435 {{pin}}\",\"ttl\":600,\"maxAttempts\":6,\"pinType\":\"numbers\",\"pinLength\":5,\"otpCallbackUrl\":\"https:\/\/my-callback\/receive-otp-status\"}", ParameterType.RequestBody); IRestResponse response = client.Execute(request);
package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "https://api.sms.cx/otp" payload := strings.NewReader("{\"phoneNumber\":\"+336124241xx\",\"from\":\"Verify\",\"template\":\"Your verification code is {{pin}}\",\"template_fr\":\"Votre code de v\u00E9rification est {{pin}}\",\"template_de\":\"Ihr Best\u00E4tigungscode lautet {{pin}}\",\"template_es\":\"Tu c\u00F3digo de verificaci\u00F3n es {{pin}}\",\"template_it\":\"Il tuo codice di verifica \u00E8 {{pin}}\",\"template_bg\":\"\u0412\u0430\u0448\u0438\u044F\u0442 \u043A\u043E\u0434 \u0437\u0430 \u043F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u0435 {{pin}}\",\"ttl\":600,\"maxAttempts\":6,\"pinType\":\"numbers\",\"pinLength\":5,\"otpCallbackUrl\":\"https:\/\/my-callback\/receive-otp-status\"}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Content-Type", "application/json") req.Header.Add("Authorization", "Bearer REPLACE_ACCESS_TOKEN") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }