メインコンテンツにスキップ

Googleログインセットアップ

GitHub

このガイドでは、Capgo Social LoginとGoogleログインを設定する方法を学びます。Googleログインを設定するには、以下のものが必要です。

  • Googleアカウント

この部分では、Googleによって表示されるログイン画面を設定します。

  1. 以下のリンクをクリックしてください。 console.cloud.google.com
  2. プロジェクトセレクターをクリックしてください Google Console プロジェクト セレクター
  3. プロジェクトが既に存在しない場合は、以下の手順に従って新しいプロジェクトを作成してください 新しいプロジェクトを作成してください.
    1. Google Console で New project Google Console の新しいプロジェクト ボタンをクリックしてください
    2. プロジェクト名を入力し、作成ボタンをクリックしてください Create プロジェクト名が正しく選択されていることを確認してください
    3. プロジェクト名がセレクターに表示されていることを確認してください Capacitor の設定を開始してください
  4. __CAPGO_KEEP_0__ OAuth consent screen
    1. 検索バーをクリックしてください

      Google Consoleの検索バー
    2. を検索してください OAuth consent screen をクリックしてください

      OAuth承認画面のオプションを表示する検索結果
    3. 承認画面を設定

      をクリックしてください create

      OAuth承認画面のユーザータイプの選択画面(外部と内部のオプションが表示されます)
  5. アプリの情報を入力してください
    1. 始めに App Information

      アプリの情報のセクションで、アプリ名とユーザーへのサポートメールのフィールドが表示されます
      • アプリ名とサポートメールのアドレスを入力してください App Name
      • ユーザーへのサポートメールのアドレスを入力してください user support email
      1. あなた CAN アプリロゴを追加することができます。

        注記
      2. SHOULD 設定する必要があります。 ドメイン設定 App domain

        注記
      3. 提供する必要があります 開発者のメールアドレス 開発者連絡先情報セクション

        メールアドレスフィールド
      4. クリックしてください save and continue

        保存して続行ボタン
  6. スコープを設定
    1. クリックしてください add or remove scopes

      スコープの追加または削除ボタン
    2. 以下のスコープを選択し、クリック update

      メールアドレスとプロフィールのスコープが選択されたスコープ選択ダイアログ
    3. クリック save and continue

      スコープ画面の保存と続行ボタン
  7. テストユーザーを追加
    1. テストユーザーセクションの追加ボタン add users Googleのメールアドレスを入力し、Enterを押し、クリック
    2. テストユーザー用のメール入力フィールドと追加ボタン add クリック
    3. テストユーザー画面の保存と続行ボタン save and continue items
  8. クリック back to dashboard ダッシュボードに戻るボタン
  9. アプリを検証する

オンラインアクセスとオフラインアクセスの違い

オンラインアクセスとオフラインアクセスの違い

Googleログインを使用する方法は複数あります。 Capacitor の使用方法の違いを表す表があります。

オンラインアクセスオフラインアクセス
バックエンドが必要❌✅
長期アクセストークン❌✅
簡単な設定✅❌

まだどちらを選択するか分からない場合は、以下のシナリオを考慮してください。

  1. ユーザーがログインするようにしたい場合は、すぐにカスタムJWTを発行する予定です。アプリはGoogle APIを呼びません。

    この場合、オンラインアクセスを選択してください。

  2. アプリがクライアントからGoogle APIを呼びますが、サーバーから呼びません。

    この場合、オンラインアクセスを選択してください。

  3. アプリは、ユーザーがアプリを使用している間のみ、Google APIをバックエンドから呼び出すことになります。

    この場合、オンラインアクセスを選択してください。

  4. アプリは、ユーザーのカレンダーを定期的に確認しますが、ユーザーがアプリを使用していない場合でも。

    この場合、オフラインアクセスを選択してください。

オンラインアクセスの例

「オンラインアクセスの例」

このチュートリアルのこの部分では、ユーザーをバックエンドで検証する方法を紹介します。

この例は非常に簡単で、以下の技術に基づいて構築されます。

この例の code を見つけることができます。 ここ

ここでは

Capacitor の Code で Google の認証 code を表示します。これはトークンを検証するために使用されます。

このアイデアは比較的単純です。ユーザーに簡単な __CAPGO_KEEP_0__ を送信し、トークンが有効であるかどうかを確認し、有効であればユーザーのメールアドレスやその他のユーザー情報を取得します。 GET Google OAuth Playground でトークン情報のレスポンスを表示します。 https://www.googleapis.com/oauth2/v3/tokeninfo ここから、ユーザーに独自の JWT を発行したり、セッション Cookie を発行したりすることができます。最終的な認証実装の可能性は限りません。

Google の __CAPGO_KEEP_0__ を呼び出す場合は、強くお勧めします。

Google の OAuth 2.0 Playground を参照してください。

If you do want to call Google API’s, I would strongly recommend looking at オフライン アクセスを使用して独自のバックエンドで実装するここ

オフラインアクセスを使用するには、以下が必要です。

  • HTTPサーバー

この例では、次の技術を使用して、オフラインアクセスを提供するアプリケーションを作成します。

この例のcodeは ここにあります

As for the client code, it looks like this:

import { Capacitor } from '@capacitor/core';
import { GoogleLoginOfflineResponse, SocialLogin } from '@capgo/capacitor-social-login';
import { usePopoutStore } from '@/popoutStore'; // <-- specific to my app
const baseURL = "[redacted]";
async function fullLogin() {
await SocialLogin.initialize({
google: {
webClientId: '[redacted]',
iOSClientId: '[redacted]',
iOSServerClientId: 'The same value as webClientId',
mode: 'offline' // <-- important
}
})
const response = await SocialLogin.login({
provider: 'google',
options: {
forceRefreshToken: true // <-- important
}
})
if (response.provider === 'google') {
const result = response.result as GoogleLoginOfflineResponse
const res = await fetch(`${baseURL}/auth/google_offline`, {
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
serverAuthCode: result.serverAuthCode,
platform: Capacitor.getPlatform()
}),
method: "POST"
})
if (res.status !== 200) {
popoutStore.popout("Full google login failed", "check console");
return
}
const { jwt } = await res.json();
const userinfo = await fetch(`${baseURL}/auth/get_google_user`, {
headers: {
Authorization: `Bearer ${jwt}`
}
})
if (userinfo.status !== 200) {
popoutStore.popout("Full google (userinfo) login failed", "check console");
return
}
popoutStore.popout("userinfo res", await userinfo.text());
}
}

注意してください。アプリ内には呼び出し方が見当たらないのですが、これは意図的なものです。Googleオフラインモードでは、リフレッシュトークンはバックエンドで安全に交換され、保存されます。 SocialLogin.refresh() Googleログインセットアップから続けてください serverAuthCode セクション名:Googleログインセットアップから続けてください

Googleログインセットアップを使用している場合

Googleログインセットアップ

Googleログインセットアップを使用している場合、Googleログインセットアップを Using @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login Using @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login for the native capability in Using @capgo/capacitor-social-login for the native capability in Using @capgo/capacitor-social-login @capgo/capacitor-social-login capgo/capacitor-social-loginの実装詳細について capgo/capacitor-passkey capgo/capacitor-passkeyの実装詳細について capgo/capacitor-native-biometric capgo/capacitor-native-biometricの実装詳細について、 2要素認証 2要素認証の実装詳細について