コンテンツにジャンプ

iOS上のGoogleログイン

Social Login GitHub リポジトリ

このガイドでは、Capgo iOS用のソーシャルログインでGoogleログインを設定する方法を学びます。 既に一般的なセットアップガイドを読んだと想定しています。 一般的なセットアップガイド.

このセクションでは、iOSでGoogleログインを設定する方法を学びます。

  1. GoogleコンソールでiOSクライアントIDを作成

    1. 検索バーをクリック

      Googleコンソールの検索バー
    2. で検索 credentials APIとサービスが強調表示されたクレデンシャルオプションを表示する検索結果 APIs and Services Googleコンソールの

      クレデンシャル作成メニューのOAuthクライアントIDオプションを選択
    3. クレデンシャル作成メニューの create credentials

      Googleコンソールのクレデンシャル作成ボタンをクリック
    4. クレデンシャル作成メニューの OAuth client ID

      OAuthクライアントIDオプションを選択
    5. クライアントIDの種類を選択 Application type To iOS

      iOSを選択したアプリケーションタイプの選択
    6. バンドルIDを探す

      1. Xcodeを開く

      2. ダブルクリックして App

        Xcodeプロジェクトナビゲータでアプリターゲットを選択
      3. ターゲットセクションに移動して Targets -> App

        ターゲットを選択した状態でXcodeのターゲットセクション
      4. バンドルIDを探す Bundle Identifier

        Xcodeプロジェクト設定のバンドル識別子フィールド
      5. Googleコンソールに戻って、 Bundle Identifier をペーストする Bundle ID

        Google Console iOS client作成フォームのBundle IDフィールド
    7. App Storeにアプリを公開している場合は、 App Store IDTeam ID をクライアントIDに追加することもできます

    8. すべての詳細を入力したら、 create

      iOS client作成フォームの下部にあるCreateボタンをクリック
    9. Create OK

      クライアントID作成確認ダイアログのOKボタンをクリック
    10. 新しく作成したiOS clientを開く

      新しく作成したiOS clientのクレデンシャルリスト
    11. 以下のデータをコピーする

      クライアントIDの詳細を表示するClient IDとクライアントIDの逆算をコピーする
  2. アプリの Info.plist を変更する

    1. Xcode を開いてプロジェクト ナビゲーターで Info.plist ファイル

      Info.plist ファイルを Xcode プロジェクト ナビゲーターで見つける
    2. 右クリックしてこのファイルを開く code

      Right-click menu showing Open As Source Code option
    3. ファイルの下部に Plist タグが表示されます </dict> Info.plistファイル内のdictタグ

      Info.plistファイルのdictタグの閉じる部分に
    4. Info.plistファイルにURLスキーム __CAPGO_KEEP_0__ を挿入したもの </dict> クリップボードにコピー

      Info.plist with URL schemes code inserted before closing dict tag
      <key>CFBundleURLTypes</key>
      <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
      <string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string>
      </array>
      </dict>
      </array>
    5. 前のステップでコピーした値 YOUR_DOT_REVERSED_IOS_CLIENT_ID 前のステップでコピーした値

      Info.plistに実際のクライアントIDが逆方向に挿入されたURLスキーム
    6. ファイルを保存する Command + S

  3. 変更する AppDelegate.swift

    1. XcodeプロジェクトナビゲータでAppDelegate.swiftファイルを開く

      AppDelegate.swiftファイルの
    2. 上部に import GoogleSignIn __CAPGO_KEEP_0__

      AppDelegate.swiftにGoogleSignIn importを追加しました
    3. Find the func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) function

      AppDelegateのOriginal application openURL function
    4. Modify the function to look like this

      func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
      // Called when the app was launched with a url. Feel free to add additional processing here,
      // but if you want the App API to support tracking app url opens, make sure to keep this call
      var handled: Bool
      handled = GIDSignIn.sharedInstance.handle(url)
      if handled {
      return true
      }
      return ApplicationDelegateProxy.shared.application(app, open: url, options: options)
      }
      Modified application openURL function with GoogleSignIn handling
    5. Save the file with Command + S

  4. Google loginをJavaScript/TypeScriptのcodeにセットアップ

    1. Import SocialLogin and Capacitor

      import { SocialLogin } from '@capgo/capacitor-social-login';
      import { Capacitor } from '@capacitor/core';
    2. 初期化メソッドを呼び出してください (これは、1回だけ呼び出してください)

      基本設定 (オンラインモード - 最も多くのアプリケーション向けに推奨):

      // onMounted is Vue specific
      onMounted(() => {
      SocialLogin.initialize({
      google: {
      iOSClientId: '673324426943-redacted.apps.googleusercontent.com',
      mode: 'online' // Default mode
      }
      })
      })

      追加のクライアントIDを使用した高度な設定:

      onMounted(() => {
      SocialLogin.initialize({
      google: {
      webClientId: 'YOUR_WEB_CLIENT_ID', // Optional: for web platform support
      iOSClientId: 'YOUR_IOS_CLIENT_ID', // Required: from step 1
      iOSServerClientId: 'YOUR_WEB_CLIENT_ID', // Optional: same as webClientId, needed for some advanced features
      mode: 'online' // 'online' or 'offline'
      }
      })
      })
    3. ログイン機能を実装するには、ログイン関数を作成し、次のcodeをクリック時に実行してください。

      オンラインモード:

      const res = await SocialLogin.login({
      provider: 'google',
      options: {}
      })
      // handle the response - contains user data
      console.log(JSON.stringify(res))

      オフラインモード:

      const res = await SocialLogin.login({
      provider: 'google',
      options: {
      forceRefreshToken: true // Recommended for offline mode
      }
      })
      // res contains serverAuthCode, not user data
      // Send serverAuthCode to your backend to get user information
      // Do not call SocialLogin.refresh() in offline mode
      console.log('Server auth code:', res.result.serverAuthCode)
  5. アプリケーションをテストしてください

    1. アプリをビルドして実行 cap sync

    2. あなたがすべて正しく行ったら、Google ログインフローが正常に動作しているはずです

      iOS 上の Google ログインフロー DEMO、サインインプロセスと成功した認証を示しています

プライバシースクリーン プラグインの不互換性

「プライバシースクリーン プラグインの不互換性」のセクション

Google ログイン プラグインは @capacitor/privacy-screen. Google のログイン ウェブビューはプライバシー画面によって中断されます。

対策: 呼び出す await PrivacyScreen.disable(); ログイン関数を呼び出す前に

import { PrivacyScreen } from '@capacitor/privacy-screen';
import { SocialLogin } from '@capgo/capacitor-social-login';
await PrivacyScreen.disable();
await SocialLogin.login({
provider: 'google',
options: {}
});

iOS の Google ログインから続けて

「iOS の Google ログインから続けて」

Capacitor の @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login を使用している場合、 Capacitor の @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login を使用している場合、 Capacitor の @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login を使用している場合、 Using @capgo/capacitor-social-login Capacitor の @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 を参照してください。 Two-factor authentication Two-factor authentication の実装詳細については参照してください。