概要
JWT(JSON Web Token)認証は、ユーザーの身元を安全に検証するための標準的な方法です。JWT認証を実装することで、MoEngageでのデータ収集プロセスに重要なセキュリティレイヤーを追加できます。 この機能により、識別済みユーザーに代わって送信されるデータが本物であり、改ざんされていないことが保証されます。このセキュリティは、お客様自身のサーバーで暗号署名されたトークンを必須とすることで実現され、不正なユーザーが正規のユーザーになりすますことを防ぎます。前提条件実装を開始する前に、以下の要件を満たしていることを確認してください。
- JWT認証機能を利用するには、アプリケーションでMoEngage Flutter Coreプラグインのバージョン 11.0.0 以上を使用している必要があります。
- 公開鍵の管理や機能の適用設定を構成するために、MoEngageダッシュボードへのアクセス権が必要です。適用設定の詳細については、こちらを参照してください。

統合
FlutterアプリケーションにJWT認証を統合するには、以下の手順を実行します。ステップ1:JWT認証を有効にする
各プラットフォームのネイティブSDK初期化時にJWT認証を有効にします。アプリケーションで使用している初期化方法に合った手順に従ってください。ステップ2と3はどちらの方法でも同じです。Android
手動初期化 MoEngage.Builder オブジェクトで NetworkAuthorizationConfig プロパティを設定します。詳細については、Android SDKの初期化を参照してください。moengage.xml 設定ファイルに次のキーを追加します。詳細については、ファイルベースの初期化を参照してください。
moengage.xml
iOS
手動初期化 MoEngageSDKConfig オブジェクトで networkConfig プロパティを設定します。詳細については、iOS SDKの初期化を参照してください。Info.plist の MoEngage ディクショナリに次のキーを追加します。詳細については、ファイルベースの初期化を参照してください。
Info.plist
ステップ2:JWTをSDKに渡す
JWTのライフサイクル管理はアプリケーション側の責任です。推奨されるフローは、ユーザーのログイン時にトークンを取得し、そのトークンをSDKに渡すことです。また、以降のアプリ起動時にトークンの有効期限が切れていないかを確認し、必要に応じて新しいトークンを取得してください。 MoEngageFlutter オブジェクトの passAuthenticationDetails() メソッドを使用して、SDKにトークンを提供します。Dart
ステップ3:コールバックハンドラーを登録して認証エラーを処理する
SDKは、MoEngageサーバーから返されたトークン検証エラーをコールバックを通じて通知します。認証が失敗したときにアプリケーションが新しいトークンを取得して提供できるよう、setAuthenticationErrorCallbackHandler() を使用してハンドラーを登録してください。このメソッドは、typedef が AuthenticationErrorCallbackHandler(AuthenticationErrorData data) である関数を受け取ります。
アプリケーションが常にコールバックを受信できるように、ルートウィジェットの initState() などのグローバルスコープでハンドラーを登録してください。
Dart
null を渡します。
Dart
クラスと列挙型
以下のクラスと列挙型は、このガイドで説明しているJWT認証メソッドで使用されるデータ構造を定義しています。トークンペイロードの作成やエラー処理の際に使用してください。Dart
情報
- 認証エラーによりAPIリクエストが失敗した場合、アプリケーションが新しいトークンを提供するまで、SDKはリクエストを再試行しません。
- 1つのセッション内で認証が10回連続して失敗すると、SDKは次のセッションが始まるまでデータ同期の試行を停止します。このカウンターは、同期が成功するとリセットされます。
- ユーザーのログアウト時にJWTエラーによりデータ同期が失敗した場合、保留中のデータは削除され、再試行は行われません。