MongoDBカスタム認証 に続いて、以下の最小限のフィールドを持つJWT Token
は、MongoDB Stitch Authenticationで機能することが示されています。また、トークンはExternal Authentication System
によって発行される必要があります
{
"aud": "<stitch app id>"
"sub": "<unique user id>",
"exp": <NumericDate>,
}
私はこれをテストしました、そしてそれは同様に機能します
Custom Authentication Provider
でユーザーを有効にしましたそれは方法で機能し、
value
:"sub": "<unique user id>"
で提供される一意のsub
で検証し、ユーザーが存在する場合はそのユーザーのオブジェクトIDを返します。クエリは、
MongoDB Stitch Custom Authentication
がExternal Authentication System
を発行してJWT
を発行する場合、ユーザー登録時にユーザーデータは実際にどこに保存されますか? -MongoDB Stitch App Collection
またはExternal Authentication API System
?これが MongoDB Support からの応答です。
Stitchが新しい「ユーザー」を作成する理由
このシナリオで作成する「ユーザー」スティッチは内部ユーザーです。この「ユーザー」には、JWTから提供されるユーザーデータとメタデータも含まれ、アプリケーションがリンクされているAtlasクラスター内の他のコレクションと一緒に保存されません。この「ユーザー」は、トリガーまたは他の関数を使用してデータベースにロードしない限り、MongoDBにアクセスできないことに注意してください。
ログイン失敗が返されないのはなぜですか
カスタム認証プロバイダーは、外部システムからの署名済みJWTを署名鍵の独自のコピーに対してチェックするだけなので、ログインの失敗は返されません。署名が一致した場合、ログインは成功したと見なされます。
ログインに失敗するのは、外部認証プロバイダーの責任です。ステッチではありません。
ユーザーデータは実際にどこに保存されますか
ユーザーデータはデータベース内で管理する必要があります。これをカスタム認証プロバイダーと統合する最も効率的な方法は、作成および/またはログイン操作タイプで Authentication Trigger を使用することです。これにより、認証イベントがトリガーされるたびに Stitch Function を実行できます。
MongoDBブログ に認証トリガーを使用する例があり、プロセスをさらに説明するのに役立ちます。