コンテンツにジャンプ

Google ログイン設定

GitHub

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

  • Googleアカウント

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

  1. 以下の手順に従ってください。 console.cloud.google.com
  2. プロジェクトセレクターをクリックしてください Google Console Project Selector
  3. プロジェクトがなければ、 新しいプロジェクトを作成してください.
    1. Google Consoleで New project Google Consoleの
    2. 新しいプロジェクトの名前を入力して Create プロジェクト名を入力し、
    3. 正しいプロジェクトが選択されていることを確認してください プロジェクト名が選択肢に表示されていることを確認してください
  4. Capgoの設定を始めます OAuth consent screen
    1. 検索バーをクリックしてください

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

      OAuthConsentScreenオプションを表示する検索結果
    3. ConsentScreenの設定

      クリックしてください create

      OAuthConsentScreenのユーザータイプの選択画面(ExternalとInternalのオプション)
  5. アプリの情報を入力してください
    1. 始めましょう App Information

      アプリ情報セクションで、アプリ名とユーザー支援メールフィールドを表示します
      • __CAPGO_KEEP_0__を入力してください App Name
      • __CAPGO_KEEP_1__を入力してください user support email
      1. __CAPGO_KEEP_3__ __CAPGO_KEEP_4__ アプリロゴを追加してください。

        OAuthConsentScreenのアプリロゴアップロードセクション
      2. あなた SHOULD configuring the App domain

        認証済みドメインフィールドを持つアプリドメイン設定セクション
      3. You HAVE TO provide the developer’s email

        Developer contact information section with email field
      4. Click on save and continue

        Save and Continue button at bottom of form
  6. Configure the scopes
    1. Click on add or remove scopes

      Add or remove scopes button in scopes configuration screen
    2. Select the following scopes and click update

      スコープ選択ダイアログにメールとプロフィールスコープが選択されている
    3. クリック save and continue

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

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

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

GoogleログインをCapacitorと組み合わせる方法は複数あります。以下の表は、2つの方法の主な違いをまとめています。

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

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

  1. アプリはクライアントからGoogle APIを呼びますが、バックエンドから呼びません。

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

  2. アプリはバックエンドからGoogle APIを呼びますが、ユーザーがアプリを使用している場合のみ。

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

  3. texts

    In this case, choose online access

  4. あなたのアプリは、ユーザーがアプリを使用していなくても、定期的にユーザーのカレンダーをチェックします

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

オンラインアクセスの例

オンラインアクセスの例

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

この例は非常に単純で、以下の技術に基づいています

この例のcodeはこちらで見つけることができます ここ

ユーザーが見ることができます

VS Code showing Google の認証 code によりトークンを検証する

アイデアはとても単純です。単純なリクエストを送信し、有効なトークンかどうかを確認し、有効であればユーザーのメールアドレスやユーザーに関するその他の情報を提供します。 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 独自のバックエンドを使用したオフライン アクセスセクションのタイトル “独自のバックエンドを使用したオフライン アクセス”

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

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

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

  • __CAPGO_KEEP_0__

このアプリでオフラインアクセスを提供するために使用する技術は以下の通りです。

The code for this example can be found クライアント __CAPGO_KEEP_0__ は

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ログインセットアップを使用して、認証とアカウントフローの計画を行っている場合、@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-loginと接続してください。 Googleログインセットアップを使用して、認証とアカウントフローの計画を行っている場合、@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-loginと接続してください。 Googleログインセットアップを使用して、認証とアカウントフローの計画を行っている場合、@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-loginと接続してください。 Googleログインセットアップを使用して、認証とアカウントフローの計画を行っている場合、@capgo/capacitor-social-loginと接続してください。 Googleログインセットアップを使用して、認証とアカウントフローの計画を行っている場合、@capgo/capacitor-social-loginと接続してください。 Googleログインセットアップを使用して、認証とアカウントフローの計画を行っている場合、@capgo/capacitor-social-loginと接続してください。 Googleログインセットアップを使用して、認証とアカウントフローの計画を行っている場合、@capgo/capacitor-social-loginと接続してください。 @capgo/capacitor-passkey @capgo/capacitor-passkeyの実装詳細 @capgo/capacitor-native-biometric @capgo/capacitor-native-biometricの実装詳細と 2要素認証 2要素認証の実装詳細