Apple Android にログイン
Apple Android でのログインはハッキングされています。 Apple は、Android 上の Sign in with Apple を正式にサポートしていないため、解決策は少しハック的です。
Android は現在、クロム タブを使用して OAuth2 Web サイトを表示しています。このアプローチには次のような課題があります。
- 構成が難しい
- バックエンドが必要です
Android での流れを理解する。
Section titled “Android での流れを理解する。”Android での流れを図を使って説明します。
flowchart TD
A("await SocialLogin.login()") -->|プラグインで処理|B(ログイン URL を生成)
B --> |リンクを渡します| C(Chromeブラウザを開く)
C --> D(ユーザーがログインするまで待ちます)
D --> |Apple はバックエンドにリダイレクトします|E(Apple から返されたデータを処理します)
E --> F(アプリにリダイレクト)
F --> G(JS に戻る) 課題とフローを理解したので、構成を開始しましょう。
サービスIDの作成
Section titled “サービスIDの作成”-
Apple 開発者ポータル にログインします。
-
[
Identifiers] をクリックします。
次のような画面が表示されるはずです。

- このフィールドに
App IDsと表示されていることを確認します。 - アプリ ID が見つかることを確認します。
:::メモ
IOS 用の Apple ログインを設定していない場合は、作成する必要があります。私の場合は、すでに作成済みです。使用するアプリ ID は
me.wcaleniewolny.test.ionic.vueです。お持ちでない場合は、アプリの作成ステップ を使用して作成してください。 :::
- このフィールドに
-
Sign in with Apple機能がアプリで有効になっていることを確認します- アプリをクリックします

Sign in with Apple機能が有効になっていることを確認します
- 有効になっていない場合は、有効にします。
- アプリをクリックします
-
すべての「すべての識別子」に戻ります。

-
「アプリ ID」をクリックし、「サービス ID」に移動します。

-
新しい識別子の作成
-
プラスボタンをクリックします

-
「サービス ID」を選択し、
Continueをクリックします。
-
説明と識別子を入力し、
Continuieをクリックします。
:::メモ この
identifiersは、バックエンドのinitialize関数とANDROID_SERVICE_IDに渡すclientIdになります。保存してください!!! :::
:::メモ サービス ID はアプリ ID と一致する必要はありませんが、サービス ID を
YOUR_APP_ID.serviceに設定することをお勧めします。念のため、アプリ ID としてme.wcaleniewolny.test.ionic.vueを使用していますが、サービス ID としてee.forgr.io.ionic.service2を使用しています。 ::: -
詳細を確認し、
Registerをクリックしてください。
-
新しく作成したサービスをクリックします。

-
Sign in with Appleオプションを有効にします。
-
Sign In with Appleを構成する
-
「プライマリ アプリ ID」が前の手順で構成したアプリ ID に設定されていることを確認します。

-
バックエンドをホストするドメインを追加します。

:::メモ このバックエンドは HTTPS で実行する必要があります**。 「戻り URL」については、このチュートリアルの次のセクションを読み、バックエンドを構成した後に戻ってくるとよいでしょう。このチュートリアルでは、戻り URL として
https://xyz.wcaleniewolny.me/login/callbackを使用し、ドメインとしてxyz.wcaleniewolny.meを使用します。次へを押してください。 ::: -
データを確認し、
Doneをクリックします。
-
「
Continue」をクリックします。
-
「
Save」をクリックします。
-
-
すべての「すべての識別子」に戻ります。

-
[
Keys] をクリックします。
-
プラスアイコンをクリックします

-
キーに名前を付けます

:::メモ この名前は重要ではありません。何でも入力できます。 :::
-
Sign in with Appleを選択し、Configureをクリックします
-
プライマリ アプリ ID を選択し、
Saveを押します。
:::メモ これは、前の手順の ID と同じアプリ ID である必要があります。 :::
-
[
Continue] をクリックします。
-
[
Register] をクリックします。
-
キー ID をコピーし、キーをダウンロードします。

:::注意 重要: この ID を保存します。バックエンドでは
KEY_IDという名前になります。キーをダウンロードします。このキーは決して共有しないでください。 ::: -
ダウンロードしたキーを見つけて、バックエンド フォルダーに保存します。

チーム ID の取得
Section titled “チーム ID の取得”Android で Login with Apple を使用するには、「チーム ID」を取得する必要があります。バックエンドで使用されます。
-
この Web サイト にアクセスし、下にスクロールします
-
「チーム ID」を見つけます。

アプリのリダイレクトの構成
Section titled “アプリのリダイレクトの構成”図で見たように、バックエンドは「アプリにリダイレクトする」というステップを実行します。これには、アプリを手動で変更する必要があります。
AndroidManifest.xmlを変更します-
ファイルを開きます。
AndroidStudioを使用します。
-
MainActivityを見つけて、次のインテント フィルターを追加します
<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を開いてください。
-
次のコードを追加します。
@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);}:::注意 この例では、ディープリンクが設定されていないことを前提としています。その場合はコードを調整してください :::
-
バックエンド構成
Section titled “バックエンド構成”Android にはバックエンドが必要ですが、バックエンドの構成は IOS にも影響します。バックエンドの例は [ここ] (https://github.com/WcaleNieWolny/capgo-social-login-backend-demo/blob/main/index.ts) で提供されています。この例では次のことが提供されます。
- シンプルな JSON データベース
- Apple のサーバーから JWT をリクエストする方法
- 簡単な JWT 検証
このチュートリアルで述べたことをすべて考慮すると、env セクションは次のようになります。
ANDROID_SERVICE_ID= サービス IDIOS_SERVICE_ID= アプリ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"}プラグインの使用
Section titled “プラグインの使用”login 関数の使用法は変更されず、IOS と同じです。詳細については、そのセクションをご覧ください。 ただし、initialize メソッドは少し変更されています。
await SocialLogin.initialize({ apple: { clientId: 'ee.forgr.io.ionic.starter.service2', redirectUrl: 'https://appleloginvps.wcaleniewolny.me/login/callback' }})アプリの作成
Section titled “アプリの作成”-
アプリ ID をまだ持っていない場合は、プラス ボタンをクリックします。

-
「App ID」を選択し、「続行」をクリックします。

-
「
App」と入力し、「Continue」をクリックします。
-
説明とアプリ ID を入力します

-
Sign with Apple機能を有効にする
-
[
Continue] をクリックします。
-
詳細を確認し、
Registerをクリックします。