Google Recaptcha 認証を使用した Vue 実装例

Google Recaptcha 認証を使用した Vue 実装例

最近のプロジェクトでは、Google ロボット認証を使用する必要があります。これには VPN が必要ですが、商用利用には会社が申請した Google アカウント (自分で申請しても無駄です) も必要です。このアカウントを使用して秘密鍵を申請し、秘密鍵を取得したら実行できます。
コードの一部は次のとおりです。

1. まず、私がカプセル化したのは Google ロボット検証コンポーネントです。

<テンプレート>
    <div ref="grecaptcha">
    </div>
    <!-- <div id="ロボット"></div> -->

</テンプレート>
<script src="http://www.recaptcha.net/recaptcha/api.js?οnlοad=ReCaptchaLoaded&render=explicit&hl=en" 非同期遅延></script>
<スクリプト>
エクスポートデフォルト{
  props: ["sitekey"], // 転送する秘密鍵mounted() {
    window.ReCaptchaLoaded = this.loaded;
    var スクリプト = document.createElement("スクリプト");
    スクリプト.src =
      「https://recaptcha.net/recaptcha/api.js?οnlοad=ReCaptchaLoaded&render=explicit」;
    document.head.appendChild(スクリプト);
  },
  メソッド: {
    ロードされた() {
       window.grecaptcha.render(this.$refs.grecaptcha, {
        サイトキー: this.sitekey,
        /**
        * res は Google の検証ステータスを返します。
        * 成功した場合は文字列を返します * 失敗した場合は文字列は返されません * したがって、検証ステータスは文字列に基づいて決定されます */
        コールバック: res =>{// true - 検証成功// false - 検証失敗res.length > 0 ? this.$emit("getValidateCode", false) : his.$emit("getValidateCode", true)
        }
      });
      // grecaptcha.render('ロボット', {
      // サイトキー: this.sitekey,
      // /**
      // * res は Google の確認ステータスを返します。
      // * 成功した場合は文字列を返します// * 失敗した場合は文字列を返しません// * したがって、文字列に基づいて検証ステータスを判断します// */
      // theme: 'light', // テーマカラー、ライトとダークが利用可能 // size: 'normal', // サイズルール、ノーマルとコンパクトが利用可能 // callback: res => {
      // res.length > 0 ? this.$emit("getValidateCode", true) : this.$emit("getValidateCode", false)
      // // true - 認証成功 // false - 認証失敗 // }
      // }); 
     
    }
  },
};
</スクリプト>
<スタイル>

</スタイル>

2. 必要な場所で使用:

<テンプレート>
  <div>
    <div class="home-content">
      <div class="home-content-img">
        <!-- <div class="home-content-imgtop"> -->
          <img src="../../assets/image/202010_JP NIGHTストア販促資料.002.png" alt="">
          <img src="../../assets/image/202010_JP NIGHTストア販促資料.003.png" alt="">
        <!-- </div> -->
        <!-- <div class="home-content-imgbottom"> -->
          <img src="../../assets/image/202010_JP NIGHTストア販促資料.004.png" alt="">
          <img src="../../assets/image/202010_JP NIGHTストア販促資料.005.png" alt="">
        <!-- </div> -->
      </div>
      <div class="home-content-bottom">
        <p> <a href="http://www.jp-night.com/terms.html" rel="external nofollow" >利用規約</a>および<a href="http://www.jp-night.com/privacy.html" rel="external nofollow" >プライバシーポリシー</a>に同意してください。</p>
        <div class="content-google">
          <google-recaptcha ref="recaptcha" :sitekey="key" @getValidateCode='getValidateCode' v-model="validateCode"></google-recaptcha>
        </div>
        <div class="ログイン">
          <button :class="isNext ?'login-botton-background':'login-botton'" :disabled="isNext" @click="login()">ショップのお知らせ</button>
        </div> 
      </div>
      
    </div>
  </div>
  
</テンプレート>

<スクリプト>
'../../common/module/GoogleRecaptcha' から GoogleRecaptcha をインポートします。
エクスポートデフォルト{
  データ() {
    var checkCode = (ルール、値、コールバック) => {
      (値 == false)の場合{
        callback(new Error('人間と機械の検証を実行してください'));
      } それ以外 {
        折り返し電話();
      }
    };
    戻る {
      キー: '6Ld9xxgaAAAAAI4xn7seMCmqbxIpVsJ_dwrZu9z1'、
      検証コード: false、
      isNext:false
    };
  },
  作成された(){
    
  },
  マウントされた(){
    
  },
  コンポーネント:{
    Google Recaptcha
  },
  方法:{
    ログイン(){
      sessionStorage.setItem('トークン',true)
      
      this.$router.push({
        パス: "/shops",
        クエリ: { 出力: true }
      })
    },
    getValidateCode(値) {
      console.log(値);
      
      this.isNext = 値
    },
  }
};
</スクリプト>

<style lang="scss" スコープ>
@import "./css/pc.css";
@import "./css/ipad.css";
@import "./css/phone.css";
#rc アンカーコンテナ {
    幅: 335ピクセル;
}

</スタイル>

3. これで、Google ロボットが使用できるようになります。

概略図:

ここに画像の説明を挿入

これで、Google Recaptcha 認証を使用した vue の実装例に関するこの記事は終了です。より関連性の高い vue Google Recaptcha 認証コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue フォーム検証のやり方を本当に知っていますか? vue フォーム検証 (フォーム) 検証
  • Vueフォーム検証プラグインであるVue Validatorの使い方の詳細な説明
  • Vue ElementUI のフォーム検証で発生した問題
  • VUEは画像検証コード機能を実装
  • vueは携帯電話経由でSMS認証コードを送信する登録機能を実装します
  • Vueはランダムな検証コードサンプルコードを生成します
  • フォーム検証に値がある場合にエラープロンプトが表示される問題を解決するために Vue と組み合わせた要素
  • Vue にモバイル検証コードコンポーネント機能を追加する方法

<<:  MySQLデータベースの基礎知識と操作のまとめ

>>:  nginx + セカンダリドメイン名 + https サポートを使用する

推薦する

ホストサービスにアクセスするDockerでのサービスの実装

目次1. シナリオ2. 解決策3. 結論4. 参考文献1. シナリオ日常の開発およびテスト作業には ...

html 内の絶対パス URL と相対パス URL、サブディレクトリ、親ディレクトリ、ルート ディレクトリ

絶対 URL は、インターネット上の特定のファイルに必要なすべてのコンテンツを表すために使用されます...

Docker を使ってゼロから SOLO 個人ブログを構築する方法

目次1. 環境整備2. Dockerをインストールする3. MySQLマスタースレーブデータベースを...

docker mysqlの起動時に初期化SQLを実行する

1.Mysqlイメージを取得するdocker pull mysql:5.7 2. MySQLイメージ...

vmware14Pro で Ubuntu システム インターフェイスが小さすぎる問題の解決方法の詳細な説明

1. 動作環境vmware14proウブントゥ 16.04LTS 2. 問題の説明vmware14P...

DockerコンテナはホストのMySQL操作にアクセスする

背景:インターフェイスを提供する Flask プロジェクトがあり、これは Docker コンテナを使...

MySQLの浅いエントリと深いエグジットの原則についての簡単な説明

目次1. ページの概要2. 下限と上限3. ページディレクトリを使用する4. ページの実際の外観4....

HTMLリンクタグのrel属性

<link> タグは、現在のドキュメントと Web コレクション内の他のドキュメントとの...

JavaScript の手ぶれ補正とスロットリングの詳細な説明

目次デバウンススロットル要約するデバウンス定義: スクロール イベントなど、短時間に連続してトリガー...

MySQL でタイムスタンプを日付に変換する例

序文職場で次のような状況に遭遇しました。ログ システムのテーブルでは、時間フィールドには日付データで...

Kubernetes ポッドオーケストレーションとライフサイクルの詳細な説明

目次K8Sマスター基本アーキテクチャポッドオーケストレーションコンセプトPod オブジェクトのプロパ...

曇り空のアイコン効果を実現する純粋な CSS

効果効果は以下のとおりです​実装のアイデアbox-shadow プロパティを使用して、複数の灰色の円...

Vue の動的コンポーネントと非同期コンポーネントの詳細な理解

1. 動的コンポーネント <!DOCTYPE html> <html> &l...

MySQL 5.7 でパスワードを変更する簡単な方法

これは公式のスクリーンショットです。MySQL 5.7 をインストールすると、デフォルトのパスワード...

Linux C++ マルチスレッド同期の非常に詳細な説明

目次1. ミューテックス1. ミューテックスの初期化2. ミューテックスロックの関連特性と分類3. ...