` @ 検証ミリアンペア生成するには constの svgCaptchaが必要(= " SVG-キャプチャを" ) // MySQLデータベースの検索フロントエンド入力のユーザー名とパスワードの constの MySQLは=(必要' MySQLの' ); constの接続= MySQLの.createConnection({ ホスト:' ローカルホスト' 、 ユーザ:' ルート' 、 パスワード:' 12345678 ' 、 データベース:' SYS ' }); connection.connect(); // ランダムに生成さを格納するためのデータベースのRedisコード // タイムリーな更新を容易 constのクライアント= redis.createClientを(); // それはRedisのがない場合Redisのは、与えられ // Redisの-Serverの起動コマンドのRedisのは // 新しいターミナル入力CLIのRedisの client.on(" エラー" 、機能( ERR){ にconsole.log(" Trror " + ERR); }) //はトークンと容易に交換するRedisのストレージ生成 機能のgetId(長さ){ 戻りナンバー(Math.random()のtoString()SUBSTR(.. 3。 、長さ) 。Date.now +())のtoString(36 ); } // コード アプリ。GET("/ CAP 」、(REQ、RES)=> { CONST CAP = svgCaptcha.create(); // CAP => {データ:...、テキスト:jsoa} // テキスト:ランダムに生成された4つのコード @ データ:イメージはのコードのフロントエンドに転送 LETテキスト = cap.text; res.type(「SVG 」); //はの前端に格納され、渡されたIDのRedisの生成 のgetId =(captchaId LET 10 ) クライアント。SET (captchaIdをテキスト) res.send({ CAP、 captchaId }) リターン }) // 遠位参照ピクチャ // <スパンdangerouslySetInnerHTML = {{__html:キャプチャ}}のonClick = {()=> this.getcaptcha()}> </スパン> // 登陆 app.post(" /にgetlogin "、非同期(REQ、RES)=> { てみましょう{ユーザー名、パスワード、認証、captchaId} = req.body; せredisCaptcha = 待つ 新しい約束((解決)=> { 。クライアントを取得(captchaId、機能(ERR、RES){ リターン解決(RES) }) }) もし(検証=== redisCaptcha){ } さもなければ{ Res.send({ コード:0 、 メッセージ:" コードが正しくないか、古くなっている" }) リターン } // データベース検索データ connection.query(表FROM `SELECT * ユーザ名= ' $ {ユーザー名} ' && PASSWRD = " パスワード} {$ " `、機能(エラー、結果、フィールド){ IF(エラー)スローエラー; IF(結果[ 0 ]){ res.send({コード:1、メッセージ:「ログインに成功" }) } 他{ res.send({コード:0、メッセージ:" ユーザー名またはパスワードエラー」}) リターン } }); }) `` `