サードパーティ認証
Cloud ScaleのAuthenticationでは、Catalystアプリケーションに任意のサードパーティ認証サービスを実装できます。エンドユーザーの認可と検証はサードパーティサービスによって処理され、データはCatalystに渡されます。
モバイルアプリにサードパーティ認証を実装するには、以下に説明する手順を実行する必要があります。
1. サードパーティ認証サービスの設定
サードパーティ認証をCatalystアプリケーションに関連付ける前に、外部サービスでのサードパーティロジックの処理を完了していることを確認してください。任意のサードパーティで認証を設定できます。
2. Catalystでのサードパーティ認証タイプのセットアップ
CatalystコンソールのCloud ScaleのAuthenticationコンポーネントに移動して、設定したサードパーティ認証をCatalystでセットアップする必要があります。手順はCatalystでのサードパーティ認証のセットアップのヘルプページで説明されています。
このプロセスには、以下の手順が含まれます:
i. カスタムサーバートークンの生成:
ユーザーが認証後にサードパーティサービスからリダイレクトされると、そのクレデンシャルをJava、Node.js、またはPythonでコーディングする必要がある認証関数に渡す必要があります。この関数はCatalystサーバーサイドトークンjwtTokenまたはcustomTokenを生成し、クライアント側(Flutterアプリ)に渡されます。CatalystコンソールはcustomTokenを生成するためのすぐに使えるスクリプトを提供しています。このスクリプトを、customTokenを返すサーバーサイド関数に組み込むことができます。
ii. クライアント側の設定をスキップする:
コンソールでのクライアント側の設定は今はスキップできます。ログインプロセスを完了するために、最後にクライアントロジックにカスタムサーバートークンを組み込みます。
iii. 追加設定の構成とセットアップの完了:
ホワイトリストの一部としてCustomer User ValidationまたはAuthorized Domainsを設定し、セットアップを完了します。
Catalystは、サードパーティ認証サービスが有効になり、アプリケーションの認証がそのサービスによって処理されていることを確認表示します。
3. FlutterプロジェクトにConfiguration Fileを再インポートする
Catalystコンソールからアプリのサードパーティ認証を有効にした後、アプリを開発しているプラットフォームとアプリの環境に基づいて、Flutterプロジェクトにプロパティファイルを再度ダウンロードしてインポートする必要があります。つまり、Androidアプリを開発している場合はapp_configuration_developmentまたはapp_configuration_productionファイルをダウンロードし、iOSアプリを開発している場合はAppConfigurationDevelopment.plistまたはAppConfigurationProduction.plistファイルをダウンロードしてください。
このファイルには、JWTClientIDとJWTClientSecretの2つの追加プロパティが含まれるためです。これらのプロパティは、SDKを再初期化した後の次のステップで渡す必要があります。
設定ファイルを再ダウンロードするには:
- プロジェクトのCatalystコンソールでSettingsに移動し、次にDeveloper Toolsに移動します。Mobile SDKセクションに既存のAndroidまたはiOSパッケージがあります。必要なパッケージを開きます。
- ポップアップで必要な環境タブをクリックし、Downloadをクリックして設定ファイルをダウンロードします。
ダウンロードした設定ファイルを、Android向けはこちら、iOS向けはこちらに記載された手順に従って再インポートできます。
4. Flutter SDKの再初期化
新しくダウンロードしたプロパティをコードに含めるために、SDKを再初期化する必要があります。SDKの再初期化も、最初のSDK初期化と同様に、Catalyst設定ファイルを使用する方法とカスタムSDK Configurationオブジェクトを渡す方法の2つの方法で行えます。ただし、サードパーティ認証を確認するための追加のSDKメソッドが含まれます。
1. Catalyst Configuration Fileを使用する方法
プロジェクトの環境を指定するか、Production環境がデフォルトとみなされる環境を指定せずに行うことができます。
環境を指定する場合:
以下に示すようにSDKを再初期化できます。Environmentの値は、アプリが動作している環境に基づいてDEVELOPMENTまたはPRODUCTIONのいずれかを渡すことができます。isCustomLoginは、サードパーティ認証の存在を示すブーリアン値です。
これらは、以下に示すようにZCatalystAppクラスのinit()メソッドに渡されます:
ZCatalystApp.init({
ZCatalystEnvironment? environment,
bool isCustomLogin = false
});
この操作のサンプルコードスニペットを以下に示します:
void main() async {
try {
await ZCatalystApp.init(
environment: ZCatalystEnvironment.DEVELOPMENT,
isCustomLogin: true
);
} on ZCatalystException catch (ex) {
print('Initialized Failed: ${ex.toString()}');
}
}
環境を指定しない場合:
SDKの初期化時にEnvironmentが指定されない場合、デフォルトでPRODUCTIONとみなされます。そのため、アプリがProduction環境で動作している場合は、以下の方法で直接SDKを初期化できます:
ZCatalystApp.init({
bool isCustomLogin = false
});
この操作のサンプルコードスニペットを以下に示します:
void main() async {
try {
await ZCatalystApp.init(
isCustomLogin: true
);
} on ZCatalystException catch (ex) {
print('Initialized Failed: ${ex.toString()}');
}
}
2. カスタムSDK Configurationオブジェクトを渡す方法:
別の方法として、ZCatalystSDKConfigsBuilderクラスを使用して渡せるカスタムZCatalystSDKConfigsオブジェクトを構築して、Flutter SDKを再初期化できます。このオブジェクトに含まれるプロパティについてはこちらを参照してください。
この方法では、新しくダウンロードした設定ファイルから取得したJWTClientIDとJWTClientSecretのプロパティをZCatalystSDKConfigsBuilderを通じて指定してSDKを再初期化することもできます。
以下の方法で行うことができます:
ZCatalystApp.init({
ZCatalystSDKConfigs? sdkConfigs,
ZCatalystEnvironment? environment,
bool isCustomLogin = true
});
サンプルコードスニペットを以下に示します:
ZCatalystSDKConfigs configs = ZCatalystSDKConfigsBuilder.customLogin(
accountsPortalBaseURL: "https://accounts.zohoportal.com/",
apiBaseURL: "https://api.catalyst.zoho.com/",
environment: ZCatalystEnvironment.DEVELOPMENT,
jwtClientID: "100****************************FX",
jwtClientSecret: "19ed***************************2s",
oauthScopes: "ZOHOCATALYST.tables.rows.ALL, ZOHOCATALYST.tables.columns.ALL",
portalID: "10******79",
projectID:28*****90 ,
redirectURL: "*****"
);
5. サードパーティ認証のユーザーログインロジックのコーディング
ここで、モバイルアプリでサードパーティ認証のログインロジックを処理してセットアップを完了できます。ステップ2で生成したcustomTokenまたはjwtTokenを、以下に示すようにhandleCustomLogin()メソッドに渡す必要があります:
Future<void> handleCustomLogin(String jwtToken)
サンプルコードスニペットを以下に示します:
await ZCatalystApp.getInstance().handleCustomLogin("123xxxxxxxx");
最終更新日 2026-02-23 18:09:41 +0530 IST
Yes
No
Send your feedback to us

