0

API가 ASP.NET webapi2입니다. .NET 코어가 아닙니다. 그런 다음 React SPA가 있습니다. 나는 Identity와 Oauth2를 사용하고 있습니다.SPA로 ASP.NET webapi에서 비밀번호 재설정 토큰 흐름을 처리하는 방법

인증 시스템을 구현 중이며 비밀번호 재설정 흐름이 다소 엉망입니다. API는 클라이언트에 전자 메일로 전송되는 토큰을 생성합니다. 그런 다음 클라이언트는 링크를 클릭하여 어딘가에 탐색합니다.

링크가 클라이언트 자바 스크립트 앱으로 이동 한 다음 토큰에서 매개 변수를 가져 와서 API에 제출하는 것이 좋습니다. 이 문제는 링크를 생성 할 수 있도록 API가 클라이언트 URL을 알아야한다는 것입니다. API가 바보 커플 링처럼 보이기 때문에 클라이언트 앱의 위치를 ​​알기를 원하지 않습니다.

또 다른 옵션은 비밀번호 재설정 링크가 API로 직접 이동하여 사용자를 클라이언트 응용 프로그램으로 리디렉션하는 것입니다. 이는 API가 클라이언트가 어디에 있는지를 알아야 할 때와 똑같은 문제를 가지고 있으며,이 불쾌한 리디렉션 해킹도 있습니다.

이 기능이나 제안에 대한 리소스가 있습니까?

덕분에

+0

설명서는 IdentityServer4 (.net 코어) 용이지만 identityserver3에도 적용됩니다. 나는 이것이 콜백 URL의 흐름과 필요성을 이해하는 데 도움이 될 것이라고 생각한다. https://identityserver4.readthedocs.io/en/release/ –

답변

0

나는 당신을 위해 무엇을 찾고있는 것은 ID 공급자의 "로그인"포털 믿습니다. 암호 재설정을위한 흐름은 기본 응용 프로그램이 아니라 ID 공급자의 일부입니다. 따라서 사용자가 비밀번호 재설정을 클릭하면 ID 제공 업체 비밀번호 재설정 페이지로 전송됩니다 (이 재설정 비밀번호 링크는 기본 앱에 없어야합니다). 초기화되면 사용자는 로그인하고 액세스 토큰을 교환 할 수있는 인증 토큰을 사용하여 앱으로 리디렉션됩니다. 리디렉션은 ID 공급자를 사용하려는 각 응용 프로그램에 대해 구성해야합니다.

+0

그건 의미가 있지만 내 앱에서는 ID 제공 업체가 앱에 불과하다. 그래서 제 3자를 사용하지 않습니다. 난 리디렉션하지 않고 내 SPA에 머물러있게 할 수 있기를 바라고 싶지만 모든 ID 정보가 별도의 MVC 앱에 있어야한다고 생각하기 시작했습니다. 내가 가지고있는 문제없이 SPA를 유지하는 사례를 찾을 수 없습니다. – codenesium