1. ノードサーバーのセットアップ + データベース接続ここでの操作は比較的簡単でわかりやすいです。ノードサーバーのクイックセットアップを参照してください。 2. SMS APIの使用SMS APIについては、ここではAlibaba CloudのSMSサービスを例に挙げます(SMSサービスを備えたプラットフォームであればどれでも使用できます)。 2.1 プラットフォームにログインしてパラメータを設定する 1. SMS コンソールに入り、送信する SMS の形式を設定します。署名がない場合は、操作前に署名を申請する必要があります。 2. APIデモの表示をクリックして、設定されたAPIに入り、Node.jsを選択します。 2.2 生成されたAPIをプロジェクトで使用する コードコメントは詳細です const Core = require('@alicloud/pop-core'); //cwen は Ali SMS モジュールを呼び出します (最初にインストールする必要があります) //cwenはAlibaba SMSサービスAPIを設定します。let client = new Core({ accessKeyId: '<accessKeyId>', // 最初に適用する必要があります (以下の手順を参照) accessKeySecret: '<accessSecret>', // 最初に適用する必要があります (以下の手順) エンドポイント: 'https://dysmsapi.aliyuncs.com', // 変更する必要はありません apiVersion: '2017-05-25' // 変更する必要はありません }); //cwenリクエストメソッドlet requestOption = { メソッド: 'POST' }; //# 検証コードをシミュレートするためにランダムな4桁の数字を生成する function rander(max, min) { Math.floor(Math.random() * (max - min)) + min を返します。 } //# 携帯電話番号 + 確認コードを保存します(簡単に確認するため) var ログイン情報 = []; //# 電話番号が確認コードを送信したかどうかを確認する let validate = (phone) => { loginInfo.some(item => item.phone === phone) を返します } //# 検証コードが一致していることを確認する let validateCode = (phone, code) => { loginInfo.some(item => (item.phone === 電話 && item.code == コード)) を返します } //cwen は Alibaba Cloud API を使用して SMS 認証 (認証コード ログイン) を送信します sendLoginCroeCode = async(req, res) => { を設定します。 { 電話番号 } を req.body とします。 randCode = rander(1000, 9999);とします。 var パラメータ = { "RegionId": "cn-杭州", "PhoneNumbers": phone, // クライアントの電話番号 "SignName": "小陈于用ya", // 署名 "TemplateCode": "SMS_197625305", // テンプレート、テキスト メッセージを送信するために使用 "TemplateParam": JSON.stringify({ 'code': randCode }) // 送信する検証コードを指定します (ここでは rander 関数が例として使用されています) } //# 確認コードを送信する前に、携帯電話番号が登録されているかどうかを確認します。if (await isRegister(phone)) { // これはデータベース操作です(無視できます) client.request('SendSms', params, requestOption).then((result) => { 結果コード == 'OK' の場合 { res.send({ ステータス: 200、 メッセージ: '送信に成功しました' }); loginInfo.push({ 電話: 電話、 コード: randCode }); console.log(ランダムコード) } それ以外 { res.send({ ステータス: 400、 メッセージ: '送信に失敗しました' }) } }) } それ以外 { res.send({ ステータス: 400、 メッセージ: 「この電話番号は登録されていません」 }) } } //# 検証コードログインインターフェース let phoneCodeLogin = async(req, res) => { let { 電話番号、コード } = req.body; if (validate(phone)) { //携帯電話番号が認証コードを送信したかどうかを判断しますif (validateCode(phone, code)) { //認証コードが携帯電話番号と一致するかどうかを判断しますlet user = await isFirstLogin(phone); //これはユーザー情報を取得するためのデータベース操作です(無視できます) res.send({ ステータス: 200、 メッセージ: 'ログイン成功'、 データ: ユーザー[0] }) loginInfo = []; // ログインが成功したら、検証コードの再送信に失敗しないようにすぐに配列をクリアします} else { res.send({ ステータス: 400、 メッセージ: '認証コードエラー' }) } } それ以外 { res.send({ ステータス: 400、 メッセージ: 「認証コードを取得できませんでした」 }) } } // 注意: 最後にインターフェースを公開することを忘れないでください 注意: 3. インターフェースを使用してログインするここではPostmanインターフェースデバッグツールを例にとり、携帯電話番号はデータベースに登録されている携帯電話番号です。 確認コードをリクエストする 携帯電話で認証コードを受け取る 認証コードログイン Node で SMS API を使用して認証コード ログインを実装するためのサンプル コードに関するこの記事はこれで終わりです。Node SMS 認証コード ログインに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL がテーブルを読み取れないエラー (MySQL 1018 エラー) の解決方法
Microsoft は T4 テンプレートを提供していますが、使用するのが非常に難しいと思います。ス...
リバースプロキシリバースプロキシとは、プロキシサーバーを介してユーザーのアクセス要求を受信し、ユーザ...
1. 環境の説明(1) CentOS-7-x86_64、カーネルバージョン uname -r は、 ...
1. MySQLデータベースのユーザーテーブルのレコードのHostフィールド値を%に変更します。奇妙...
画像リンク <img src="" /> jsを使用してURLが有効...
MySQL データベース操作では、一部のクエリを実行するときにデータベース エンジンが完全なテーブル...
第1章: keepalivedの紹介VRRP プロトコルの目的は、静的ルーティングの単一点障害問題を...
システムでさまざまな IO ボトルネック、メモリ使用量の増加、CPU 使用率の増加などの問題が発生し...
まずMySQLの公式ドキュメントを見てみましょう: 5.7 {データベース | スキーマ} を作成 ...
学生.xml <?xml バージョン="1.0" エンコーディング=&qu...
npx 使用チュートリアル今晩、 Vue-Cli勉強していたところ、ふと最新の@4.xxバージョンを...
<br />原文: http://uicom.net/blog/?p=762 Faceb...
前回の記事では、https を使用したローカルノードサービスアクセスを実装しました。前回の記事の効果...
Mysqlページングの2つのパラメータ ユーザー制限 1,2 から * を選択 1 は検索する最初の...
MySQLをインストールしてメモしておきます。うまくインストールできるか分かりませんが、試してみます...