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

Apple Sign-Inから@capgo/social-loginへの移行

GitHub

このガイドでは、従来の @capacitor-community/apple-sign-in プラグインから最新の @capgo/capacitor-social-login パッケージへの移行方法を説明します。新しいプラグインは、TypeScriptのサポート強化と継続的なメンテナンスにより、複数のソーシャル認証プロバイダーに対して統一されたインターフェースを提供します。

  1. 古いパッケージを削除します:

    ターミナル
    npm uninstall @capacitor-community/apple-sign-in
  2. 新しいパッケージをインストールします:

    ターミナル
    npm install @capgo/capacitor-social-login
    npx cap sync
import { SignInWithApple } from '@capacitor-community/apple-sign-in';
import { SocialLogin } from '@capgo/capacitor-social-login';

主な変更点: 新しいプラグインでは、以前は不要だった初期化ステップが必要になります。

// No initialization needed in old package
// For iOS: Basic configuration
await SocialLogin.initialize({
apple: {} // Basic iOS configuration
});
// For Android: Additional configuration required
await 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ではService IDやWebベースのOAuth認証用のバックエンドコールバックURLなど、追加の詳細設定が必要です。

ログインプロセスは、複数のパラメータからよりクリーンな 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 Changes」セクション

結果には以下が含まれるようになりました: accessToken 有効期限の詳細と構造化された profile セクションを含むオブジェクトです。従来のパッケージのフラットなレスポンス形式から変更されました:

// Old response type
interface AppleSignInResponse {
response: {
user: string;
email: string | null;
givenName: string | null;
familyName: string | null;
identityToken: string | null;
authorizationCode: string | null;
};
}
// New response type
interface 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 package
const status = await SocialLogin.isLoggedIn({
provider: 'apple'
});

ログアウト機能

// Not available in old package
await SocialLogin.logout({
provider: 'apple'
});

これらのメソッドを使用することで、 isLoggedIn() 認証状態の確認と logout() 機能です。

iOSのセットアップ

「iOSの設定」セクション

iOSと Xcodeの機能により、従来通りのセットアップ手順を維持できます:

  1. iOSの設定は、ほとんど変わりません。引き続き以下の手順が必要です:
    • Xcodeで「Sign In with Apple」のcapabilityを有効にする
    • Apple Developer Portalでアプリの設定を行う
    • iOSにおいて追加の code の変更は不要です

Android セットアップ

「Androidの設定」セクション

Android ウェブベースのOAuth認証を通じて、ネイティブサポートが提供されるようになりました:

新しいプラグインはAndroidを標準でサポートしていますが、追加の設定が必要です:

  1. Apple Developer PortalでServices IDを作成する
  2. ウェブ認証エンドポイントを設定する
  3. OAuthフローを処理するようにAndroidアプリを設定する
  4. バックエンドサービスの構成が必要です

Android設定の詳細な手順については、以下を参照してください: Android設定ガイド.

最新のパッケージでは以下が提供されます:

  1. 統合されたAPI 複数のソーシャルプロバイダー(Google, Facebook, Apple)に対応
  2. TypeScriptの型定義の改善 より高度な型定義を実現
  3. 活発なコミュニティによるメンテナンス 非推奨バージョンと比較して向上
  4. Androidの標準サポート Webベースの認証による実装
  5. 永続的なログイン状態の管理
  6. エラーハンドリングの強化 一貫したエラータイプを提供
  1. 明示的な初期化が必須になりました - デフォルト設定が廃止されました
  2. レスポンスオブジェクトの構造が変更されました - ネストされたresult形式に変更
  3. Androidの実装にはバックエンドサービスが必要です OAuth用
  4. トークンリフレッシュの処理が変更されました - トークン管理が改善されました
  5. エラーハンドリングとエラー型が変更されました - より詳細なエラー情報を提供

セットアップの詳細については、以下をご参照ください: 公式ドキュメント.

Apple Sign-In Migration から @capgo/social-login へ進む

「Apple Sign-In Migration から @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要素認証 二要素認証の実装の詳細については。