0

私はASP.NET webapi2というAPIを持っています。 .NETコアではありません。それから私はReact SPAを持っています。私はアイデンティティとOauth2を使用しています。SPAを使用してASP.NET webapiでパスワードリセットトークンフローを処理する方法

私は認証システムを実装しています。パスワードのリセットフローには少し不便です。 APIは、クライアントに電子メールで送信されるトークンを生成します。クライアントはリンクをクリックしてどこかをナビゲートします。

リンクがクライアントのjavascriptアプリケーションにナビゲートし、トークンからパラメータを取得してAPIに送信するのは理にかなっています。この問題は、リンクを生成できるようにするためにAPIによってクライアントのURLを知る必要があることです。私はAPIがダムカップリングのように見えるので、クライアントアプリケーションの配置場所については何も知りたくありません。

もう1つの選択肢は、パスワードリセットリンクがAPIに直接ナビゲートし、そこでユーザーをクライアントアプリケーションにリダイレクトすることです。これはAPIがクライアントがどこにいるのかを知る必要があるのと同じ問題を抱えています。また、この厄介なリダイレクトハックもあります。

これがどのように機能するのかに関するこの資料または提案にはリソースがありますか?

おかげ

+0

ドキュメントはIdentityServer4(.netコア)用ですが、identityserver3にも適用されます。私はこれがコールバックURLの流れと必要性を理解するのに役立つと思います:https://identityserver4.readthedocs.io/en/release/ –

答えて

0

私は、あなたが探していることは、アイデンティティプロバイダの「ログイン」ポータルであると信じています。パスワードリセットのフローは、メインアプリケーションではなく、アイデンティティプロバイダの一部です。ユーザーがパスワードリセットをクリックすると、IDプロバイダのパスワードリセットページに送信されます(このリセットパスワードリンクは、メインアプリには存在しないはずです)。リセットされると、ユーザーはログインし、アクセストークンと交換する認証トークンを使用してアプリにリダイレクトされます。リダイレクトは、アイデンティティ・プロバイダを使用する各アプリケーションに対して構成する必要があります。

+0

それは意味がありますが、私のアプリではアイデンティティプロバイダは単なるアプリです。だから私は第三者を使っていない。私はすべてのリダイレクトされていないユーザーが私のSPAに滞在することができるようにしたいと思いますが、私はすべてのアイデンティティのものが別のMVCアプリケーションにある必要があると考え始めている。私は、私が持っている問題なしにSPAを維持する事例は見つけられません。 – codenesium

関連する問題