ホームページ  >  記事  >  バックエンド開発  >  Thinkphp が SMS 認証登録関数を実装する_php の例

Thinkphp が SMS 認証登録関数を実装する_php の例

WBOY
WBOYオリジナル
2016-12-05 13:28:161488ブラウズ

はじめに

登録時に SMS 認証コードが必要になることがよくありますが、この記事ではそのアイデアと具体的な実装について記録します。

SMS 検証プラットフォームは Yunpian を使用し、SMS 検証コードは thinkphp を使用して生成されます。

感想

1. ユーザーは携帯電話番号を入力し、SMS 認証コードの取得を要求します。

2. thinkphp は SMS 検証コードを生成して保存し、他のパラメーターとともにリクエストを Yunpian に送信します。

3. Yunpian は指定された携帯電話番号にテキスト メッセージ確認コードを送信します。

4. ユーザーは SMS 認証コードを入力します。

5. thinkphp は、検証コードが正しいかどうか、および検証コードの有効期限が切れているかどうかの 2 つの条件に基づいて検証に合格するかどうかを判断します。

コードの実装

検証インターフェース

インターフェースアドレス: https://sms.yunpian.com/v1/sms/send.json。

postman を使用して、apikey、mobile、text の 3 つの必要なパラメータを入力します。

phpがhttp/httpsリクエストを開始します

PHPのcurl関数を使用してhttpsリクエストを開始し、パラメータapikey、mobile、textを取り込みます。

リーリー

ランダムなSMS認証コードを生成します

デフォルトでは、4 桁のランダムな SMS 確認コードが生成されます。

リーリー

統合

データベースに新しいテーブル sun_smscode を作成します:

リーリー

認証SMS認証コード

SMS 認証コードの有効期限が切れているかどうか、および SMS 認証コードが正しいかどうかを確認してください。

リーリー

改善点

SMS爆撃を防ぐため、SMS認証コードの取得をリクエストする際に画像認証コードを追加する必要があります。

thinkphp には画像検証コードを生成する機能が用意されています。検証コードの生成、更新、検証を実装してみましょう。

画像検証コードを生成して更新します

リーリー

この関数の対応する URL が http://localhost/owner-bd/index.php/Home/CheckCode/getPicCode であるとします。すると、画像検証コードのアドレスはこの URL になります。ページ画像タグの。

認証画像認証コード

リーリー

上記の方法では、実装が非常に簡単な thinkphp が提供する check メソッドを使用しました。ただし、検証の詳細を取得したい場合は、方法がありません。たとえば、認証コードが間違っている場合、認証コードがタイムアウトした、認証コードが間違って入力された、認証コードが使用されたなどの可能性があります。必要に応じて、thinkphp の検証コード クラスを書き換えたり、thinkphp の check メソッドを書き換えたりできます。

フロントエンドとバックエンドを完了

バックエンドの変更

画像検証コード関数を確認し、呼び出される関数に変更します:

リーリー

SMS認証コードを取得する関数の先頭に、認証に合格した後にのみリクエストがYunpianに送信されるように、画像認証コードを呼び出す関数を追加します。

リーリー

フロントエンドコアコード

リーリー

最適化

上記のコードのセキュリティはあまり良くありません。ツールを使用してフロントエンド検証をバイパスできます。この問題を回避するには、checkPicCode 関数と checkSMSCode 関数でマークするセッション値を追加します。

リーリー

最後のステップでは、データベースにユーザーを追加するときに、まず両方のセッション値が true であるかどうかを確認し、両方が true の場合に追加します。

実績

追記

将来役立つかもしれないコード:

リーリー

上記は、編集者が紹介した SMS 認証登録の Thinkphp 実装です。ご質問があれば、メッセージを残してください。編集者がすぐに返信します。スクリプト ハウス Web サイトをサポートしてくださった皆様にも感謝いたします。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。