Apple Sign-Inから@capgo/social-loginへの移行
インストール手順と、このプラグインの完全なMarkdownガイドを含むセットアッププロンプトをコピーします。
このガイドでは、レガシーの @capacitor-community/apple-sign-in プラグインからモダンな @capgo/capacitor-social-login パッケージへの移行手順を説明します。新しいプラグインは、複数のソーシャル認証プロバイダーに対して統一されたインターフェースを提供し、TypeScript のサポートが強化され、アクティブにメンテナンスされています。
インストール
「インストール」セクション-
古いパッケージを削除します:
ターミナル npm uninstall @capacitor-community/apple-sign-in -
新しいパッケージをインストールします:
ターミナル npm install @capgo/capacitor-social-loginnpx cap sync
Code の変更点
「Code の変更点」セクションインポートの変更
「Import の変更点」セクションimport { SignInWithApple } from '@capacitor-community/apple-sign-in';import { SocialLogin } from '@capgo/capacitor-social-login';初期化
「初期化」セクション主な変更点:新しいプラグインでは、以前は不要だった初期化ステップが必要です。
// No initialization needed in old package// For iOS: Basic configurationawait SocialLogin.initialize({ apple: {} // Basic iOS configuration});
// For Android: Additional configuration requiredawait SocialLogin.initialize({ apple: { clientId: 'YOUR_SERVICE_ID', // Service ID from Apple Developer Portal redirectUrl: 'https://your-backend.com/callback' // Your backend callback URL }});重要なお知らせ: iOS では基本設定を指定するだけで済みますが、Android では Web ベースの OAuth 認証用に Service ID とバックエンドのコールバック URL などの追加情報が必要です。
サインイン
「Sign In」セクションログイン処理は複数のパラメータから、よりシンプルな API に簡素化されます:
const result = await SignInWithApple.authorize({ clientId: 'com.your.app', redirectURI: 'https://your-app.com/callback', scopes: 'email name', state: '12345', nonce: 'nonce'});
const result = await SocialLogin.login({ provider: 'apple', options: { // Optional: Add scopes if needed scopes: ['email', 'name'], nonce: 'nonce' }});新しいプラグインは login() を使用して provider: 'apple' および任意のスコープを、次のような個別の設定値を渡す代わりに使用します clientId と redirectURI.
レスポンスタイプの変更
セクション「Response Type の変更」結果には次のものが含まれるようになりました: accessToken 有効期限の詳細と構造化された profile セクションを持ち、元のパッケージのフラットなレスポンス形式に置き換わります:
// Old response typeinterface AppleSignInResponse { response: { user: string; email: string | null; givenName: string | null; familyName: string | null; identityToken: string | null; authorizationCode: string | null; };}
// New response typeinterface SocialLoginResponse { provider: 'apple'; result: { accessToken: { token: string; expiresIn?: number; refreshToken?: string; } | null; idToken: string | null; profile: { user: string; email: string | null; givenName: string | null; familyName: string | null; }; };}更新されたプラグインは、先行バージョンでは利用できなかった機能を導入します:
ログイン状態の確認
// Not available in old packageconst status = await SocialLogin.isLoggedIn({ provider: 'apple'});ログアウト機能
// Not available in old packageawait SocialLogin.logout({ provider: 'apple'});これらのメソッドは isLoggedIn() 認証状態の確認と logout() 機能を提供します。
プラットフォーム固有の変更
「Platform Specific Changes」セクションiOSのセットアップ
「iOSセットアップ」セクションiOSと Xcode の機能を通じて、慣れ親しんだセットアップ手順を維持します:
- iOS のセットアップはほぼ同じです。引き続き以下が必要です:
- Xcode で「Sign In with Apple」機能を有効にする
- Apple Developer Portal でアプリを設定する
- iOSには追加のcode変更は不要です
Android セットアップ
「Androidの設定」セクションAndroidでは WebベースのOAuth認証によりネイティブサポートが提供されるようになりました:
新しいプラグインはAndroidサポートを標準で提供しますが、追加の設定が必要です:
- Apple Developer PortalでServices IDを作成します
- Web認証エンドポイントを構成します
- AndroidアプリでOAuthフローを処理するように設定します
- バックエンドサービスの構成が必要です
Androidセットアップの詳細については、 Androidセットアップガイド.
主なメリット
「主な利点」セクションモダン化されたパッケージは以下を提供します:
- 統合された API 複数のソーシャルプロバイダー(Google、Facebook、Apple)間で
- 改善された TypeScript 型定義 より良い型定義により
- アクティブなコミュニティによるメンテナンス 非推奨バージョンと比較して
- 組み込みの Android サポート Web ベースの認証を通じて
- 永続的なログイン状態の管理
- エラーハンドリングの改善 一貫性のあるエラータイプ
破壊的変更
セクション「破壊的変更」- 明示的な初期化が必須になりました - デフォルト設定なし
- レスポンスオブジェクトの構造が変更されました - ネストされた結果形式
- Android実装にはバックエンドサービスが必要です OAuth用
- トークンリフレッシュの処理が異なります - トークン管理の改善
- エラー処理とエラータイプが変更されました - より詳細なエラー
詳細なセットアップ手順については、以下を参照してください: 公式ドキュメント.
Apple Sign-In の移行から @capgo/social-login へ続行する
「Apple Sign-In の移行から @capgo/social-login へ続行する」セクション使用している場合 Apple Sign-Inから@capgo/social-loginへの移行 認証とアカウントフローを計画するには、これを次と連携させてください @capgo/capacitor-social-login の使用 「@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要素認証 二要素認証の実装の詳細については。