web-dev-qa-db-ja.com

OTPを生成してSMS経由でモバイルにパスワードを送信する方法

私はウェブサイトのログインにOTPを使用するプロジェクトを行っています。「生成」という名前のボタンを作成しました。クリックするとOTPが作成され、SMS HTTPゲートウェイ経由で送信されます。パスワードをデータベースに保存します。

OTPを作成してDBに保存するためのコード:

if(isset($_POST['generate']))
{
    $string = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $string_shuffled = str_shuffle($string);
    $password = substr($string_shuffled, 1, 7);

    $password = base64_encode($password);
    $query = mysql_query("UPDATE user_login SET password='".$password."' WHERE username = 'ajai sandy' ");
    $qry_run = mysql_query($query);
}

今私はこのSMS API:のコードを配置する必要があります

http://login.smsgatewayhub.com/smsapi/pushsms.aspx?user=abc&pwd=xyz&to=919898123 456&sid=senderid&msg=test%20message&fl=0 

事はコードの5行目がOTPを生成することであり、モバイルにパスワードを送信できるように、この後にSMS APIを配置する必要があります。それからパスワードを暗号化する必要があります。 6行目で、データベースに保存します。

このアクションを順番に実行する方法がわからない、コードの配置場所がわからない

5
Ajai Sandy

これを試して。

if(isset($_POST['generate']))
{
    $string = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $string_shuffled = str_shuffle($string);
    $password = substr($string_shuffled, 1, 7);

    file_get_contents("http://login.smsgatewayhub.com/smsapi/pushsms.aspx?user=abc&pwd=$password&to=919898123456&sid=senderid&msg=test%20message&fl=0");


    $password = base64_encode($password);
    $query = mysql_query("UPDATE user_login SET password='".$password."' WHERE username = 'ajai sandy' ");
    $qry_run = mysql_query($query);
}
5
Nishant Solanki

次のコードはチャームのように機能します。

 header('Location:http://login.smsgatewayhub.com/smsapi/pushsms.aspx?user=abc&pwd=$password&to=919898123456&sid=senderid&msg=test%20message&fl=0');
1
Ajai Sandy

ありがとう、この素晴らしいチュートリアルを紹介させていただきます。

//OTP SYSTEM CODE

function sendSMS($mobile=null, $subject=null)
{
$SMSapiKey = 'XYZ';
$url = 'http://example.com/api_2.0/SendSMS.php?APIKEY='.$SMSapiKey.'&MobileNo='.urlencode($mobile).'&SenderID=SAMPLE_MSG&Message='.urlencode($subject).'&ServiceName=TEMPLATE_BASED';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$returndata = curl_exec($ch);
curl_close($ch);
return "A SMS SENT SUCCESSFULLY TO $mobile";
}
$otp_code = strtoupper(substr(md5(uniqid()), 0, 6));   // A smart code to generate OTP PIN.

暗号化されたセキュリティで保護されたOTP用のこの素晴らしいチュートリアルとG2FAの実装を確認してください phpを使用してotpシステムを作成

1
RASAtech India

PHP with http://2Factor.in OTP APIを介してOTPを送信するための簡単なサンプルコードを以下に示します。

 <?php

$YourAPIKey='<YourAPI>';
$SentTo='<User10DigitNumber>';


### DO NOT Change anything below this line
$agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
$url = "https://2factor.in/API/V1/$YourAPIKey/SMS/$SentTo/AUTOGEN"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
echo curl_exec($ch); 
curl_close($ch);

このリンク を実装するための簡単な手順の説明SMS PHPからのOTP

0
Rahul

OTPを使用した電話番号の確認 (ワンタイムパスワード)は、Webサイト上のスパムを減らす確実な方法です。この記事では、このトピックについて詳しく説明します。 PHPコードを設定してOTPを携帯電話番号に送信し、ユーザーを確認する方法を学びます。Twilioをサードパーティのサービスとして使用して、ワンタイムパスワード(OTP)。

実際、Twilioはサードパーティのツールであり、テキストメッセージやIVRなどの送信に使用できます。 Twilioには他にも多くの選択肢がありますが、シームレスな統合と私の個人的な選択により、ここではTwilioを使用します。 Twilioは有料のツールですが、もちろん一定の制限がある「無料版」を使用できますが、記事や目的には十分です。

0
Ayush Jain