Vue で Google サードパーティ ログインを実装するためのサンプル コード

Vue で Google サードパーティ ログインを実装するためのサンプル コード

1. 開発者プラットフォームの構成

1. 開発者プラットフォームに入り、Google API コンソールに移動してプロジェクトを選択または作成します。

Google デベロッパー プラットフォーム

ここに画像の説明を挿入

魅力的なAPIが多すぎて選ぶのが難しいですが、今回の目的はソーシャルAPIだということを覚えておいてください。

ここに画像の説明を挿入

2. このAPIを使用する前に、OAuth 2.0クライアントIDを申請する必要があります。

ここに画像の説明を挿入

3 必要に応じてプロジェクトのタイプ、名前、ソースURLを入力します。

注: 作成が完了すると、申請したクライアント ID とキーを示すポップアップ ウィンドウがページに表示されます。はい、これは生成プロセスです。

ここに画像の説明を挿入

4. vue-google-signin-buttonをインストールする

npm をインストール vue-google-signin-button --save

5. main.jsにインポートして登録する

'vue-google-signin-button' から GSignInButton をインポートします。
Vue.use(GSignInButton);

6.index.htmlにjsファイルを導入する

<!--Google ログインには依存関係 js が必要です -->
<script src="//apis.google.com/js/api:client.js"></script>

7. login.vueでコンポーネントを使用する

<テンプレート>
  <g-サインインボタン
    :params="googleSignInParams"
    @success="サインイン成功"
    @error="onSignInError">
    Googleでログイン
  </g-サインインボタン>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  データ () {
    戻る {
      /**
       * Auth2パラメータは、
       * https://developers.google.com/identity/sign-in/web/reference#gapiauth2initparams.
       * 少なくとも、有効な client_id が存在している必要があります。
       * @type {オブジェクト}
       */
      googleSignInParams: {
        クライアント ID: 'YOUR_APP_CLIENT_ID.apps.googleusercontent.com'
      }
    }
  },
  メソッド: {
    サインイン成功時(googleUser){
      コンソールログ(googleUser)
      const プロファイル = googleUser.getBasicProfile()
      console.log(プロファイル)
    },
    onSignInError (エラー) {
      console.log('ああ、だめだ', エラー)
    }
  }
}
</スクリプト>

<スタイル>
.g-サインインボタン{
  /* ここでボタンの外観を制御します。創造的に考えましょう! */
  表示: インラインブロック;
  パディング: 4px 8px;
  境界線の半径: 3px;
  背景色: #3c82f7;
  色: #fff;
  ボックスの影: 0 3px 0 #0f69ff;
}
</スタイル>

ここに画像の説明を挿入

問題を解決する

1. 問題1: 初期化ではjsが導入されない

初期化中にページにエラー メッセージが表示されます。


この問題の原因は、プラグイン自体が Google.js ファイルを導入していないことです。解決策は、Vue の index.html に導入することです。詳細については、下の図を参照してください。

Vue で Google サードパーティログインを実装するためのサンプルコードに関するこの記事はこれで終わりです。Vue Google サードパーティログインに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue.js での Line サードパーティログイン API の実装コード

<<:  MySQL テーブル内の重複データを検索して削除する方法の概要

>>:  CentOS 6.x のインストール時に発生するエラー「ディスク sda に BIOS RAID メタデータが含まれています」の解決方法

推薦する

MySQL SQL ステートメントのパフォーマンス チューニングの簡単な例

MySQL SQL ステートメントのパフォーマンス チューニングの簡単な例サーバー開発を行う際には、...

ネイティブJavaScriptでカルーセルを実装する

この記事では、JavaScriptでカルーセルを実装するための具体的なコードを参考までに紹介します。...

HTML+CSS マージテーブル境界線サンプルコード

table タグと td タグに境界線を追加すると、デフォルトでは次のように二重境界線が使用されます...

IE6/7 は混乱するだろう: 空のテキスト ノードの高さの問題

序文: ietester でドキュメント コードを表示するには、debugbar を使用します。すべ...

JavaScript における Promise の詳細な説明

目次Promise の基本的な使用法: 1. Promiseオブジェクトを作成する2. プロミス方式...

CSSアニメーションに基づくSVGボタンのサンプルコード

具体的なコードは次のとおりです。 <a href="#"> <...

CSS と JS を使用して下線効果を実装する方法の例

この記事では、主に 2 種類の下線の動的効果について説明します。1 つ目は、ホバーすると X 軸が内...

Dockerコンテナ間で通信する3つの方法

Docker コンテナは互いに分離されており、相互にアクセスできないことは誰もが知っていますが、依存...

Keepalived を使用して Nginx の自動再起動とデュアルアクティブ ホットスタンバイの高可用性を実現する方法について

目次1. 概要2. Keepalivedを使用してNginxを自動的に再起動する2.1 シェルスクリ...

Momentsで写真を整理するためのCSSコード

まず、Moments を開いて、写真の数が異なるいくつかのレイアウトを確認するか、以下の例を参照して...

js における浅いコピーと深いコピーの詳細な説明

目次1. jsメモリ2. 譲渡3. 浅いコピー4. ディープコピー序文:以下の記事を読む前に、記憶に...

Axiosは繰り返しのリクエストをキャンセル

目次序文1. リクエストをキャンセルする方法2. 重複リクエストの判定方法3. 繰り返しリクエストを...

MySQL 中断された接続警告ログの分析

序文:場合によっては、MySQL に接続されたセッションが異常終了することが多く、エラー ログに「通...

docker-maven-pluginはイメージをパッケージ化し、プライベートウェアハウスにアップロードします。

目次1. docker-maven-pluginの紹介2. 環境とソフトウェアの準備3. デモ例3....

Idea で Tomcat のソースコードデバッグを開始し、デバッグのために Tomcat に入る方法

idea 開発ツールを使用してコードをデバッグする場合、Java Web プロジェクトで、Web コ...