AndroidでのApple login
インストール手順と、このプラグインの完全なMarkdownガイドを含むセットアッププロンプトをコピーします。
AndroidでのAppleログインは少し強引な実装です。Appleは Sign in with Apple Androidを公式にサポートしていないため、解決策も少し強引です。
現在、AndroidではOAuth2のWebサイトを表示するためにChromeタブを使用しています。この手法には次の課題があります:
- 設定が複雑
- バックエンドが必要
Androidでのフローの理解
「Androidでのフローの理解」セクション図を使ってAndroidでのフローを説明します:
flowchart TD
A("await SocialLogin.login()") -->|Handled in the plugin|B(Generate the login URL)
B --> |Pass the link| C(Open the Chrome browser)
C --> D(Wait for the user to login)
D --> |Apple redirects to your backend|E(Handle the data returned from Apple)
E --> F(Redirect back to the app)
F --> G(Return to JS)
課題とフローを把握したところで、設定を開始しましょう。
Service IDの作成
「Service IDの作成」セクション-
にログインしてください Apple Developer Portal.
-
次をクリックします:
Identifiers.
次のような画面が表示されます:
- このフィールドが以下のようになっていることを確認してください:
App IDs - App ID が見つかることを確認してください。
- このフィールドが以下のようになっていることを確認してください:
-
以下の項目が
Sign in with Appleアプリで有効になっていることを確認してください- アプリをクリックしてください
- 以下の項目が
Sign in with Apple有効であることを確認してください
- 有効になっていない場合は、有効にしてください。
- アプリをクリックしてください
-
「すべて」に戻り
All Identifiers
-
次をクリックします:
App Idsから以下へ移動しますServices IDs
-
新しい識別子の作成
-
プラスボタンをクリック
-
選択します
Servcice IDsをクリックし、Continue
-
説明と識別子を入力してクリック
Continuie.
-
詳細を確認して、クリックしてください
Register
-
作成したばかりのサービスをクリック
-
その
Sign in with Appleオプション
-
次の
Sign In with Apple
-
以下の項目が
Primary App ID前のステップで設定したApp IDになっていることを確認
-
バックエンドをホストするドメインを追加します。
-
データを確認してクリックしてください
Done
-
次をクリックします:
Continue
-
次をクリックします:
Save
-
キーの作成
「キーの作成」セクション-
一覧に戻る
All Identifiers
-
次をクリックします:
Keys
-
プラスアイコンをクリック
-
キーの名前を入力
-
選択します
Sign in with Appleをクリックし、Configure
-
プライマリApp IDを選択して、以下を押します
Save
-
次をクリックします:
Continue
-
次をクリックします:
Register
-
Key IDをコピーしてキーをダウンロードします。
-
ダウンロードしたキーを探し、バックエンドのフォルダに保存してください。
Team IDの取得方法
「Team IDの取得方法」セクションを使用するには、 Login with Apple Androidでは、以下を取得する必要があります。 Team IDこれはバックエンドで使用されます。
-
以下に移動します: こちらのウェブサイト までスクロールして
-
〜を探します
Team ID
アプリのリダイレクト設定
「アプリのリダイレクト設定」セクション図で見たとおり、バックエンドは次のステップを実行します。 Redirect back to the appこれにはアプリへの手動変更が必要です。
- 次を変更します:
AndroidManifest.xml-
ファイルを開きます。ここでは
AndroidStudio
-
〜を探します
MainActivity次の Intent filter を追加します。
<intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="capgo-demo-app" android:host="path" /></intent-filter>
-
- 次を変更します:
MainActivity-
以下を開いてください:
MainActivity
-
以下のcodeを追加してください:
@Overrideprotected void onNewIntent(Intent intent) {String action = intent.getAction();Uri data = intent.getData();if (Intent.ACTION_VIEW.equals(action) && data != null) {PluginHandle pluginHandle = getBridge().getPlugin("SocialLogin");if (pluginHandle == null) {Log.i("Apple Login Intent", "SocialLogin login handle is null");return;}Plugin plugin = pluginHandle.getInstance();if (!(plugin instanceof SocialLoginPlugin)) {Log.i("Apple Login Intent", "SocialLogin plugin instance is not SocialLoginPlugin");return;}((SocialLoginPlugin) plugin).handleAppleLoginIntent(intent);return;}super.onNewIntent(intent);}
-
バックエンド設定
「バックエンド設定」というタイトルのセクションAndroidではバックエンドが必要ですが、その設定はiOSにも影響します。以下にバックエンドの例を用意しました。 こちら
この例では、以下の機能を提供します:
- シンプルなJSONデータベース
- AppleのサーバーからJWTをリクエストする仕組み
- シンプルなJWT検証機能
このチュートリアルの内容を踏まえると、 env セクションは以下のようになります:
ANDROID_SERVICE_ID= サービスIDIOS_SERVICE_ID= App ID
env: { PRIVATE_KEY_FILE: "AuthKey_U93M8LBQK3.p8", KEY_ID: "U93M8LBQK3", TEAM_ID: "UVTJ336J2D", ANDROID_SERVICE_ID: "ee.forgr.io.ionic.starter.service2", IOS_SERVICE_ID: "me.wcaleniewolny.test.ionic.vue", PORT: 3000, REDIRECT_URI: "https://xyz.wcaleniewolny.me/login/callback", BASE_REDIRECT_URL: "capgo-demo-app://path"}プラグインを使用する方法
「Using the plugin」というタイトルのセクション関数の使い方は login 変わりません。iOSと同じです。詳細は該当セクションを参照してください。 ただし、この initialize メソッドは少し異なります。
await SocialLogin.initialize({ apple: { clientId: 'ee.forgr.io.ionic.starter.service2', redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback' }})アプリの作成
「アプリの作成」セクション-
App IDがない場合は、プラスボタンをクリックしてください
-
選択します
App IDs「Continue」をクリックします
-
タイプをクリック
Appをクリックし、Continue
-
説明とApp IDを入力してください
-
有効にする
Sign with Applecapability
-
クリック
Continue
-
詳細を確認してクリック
Register
AndroidでのAppleログインの継続
「AndroidでのAppleログインの継続」セクション使用している場合 AndroidでのApple 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要素認証 二要素認証の実装の詳細については。