브라우저 실행 앱의 OAuth 인증.

이전에 작성한 OAuth 인증의 이해 시리즈(oauth)를 마감하는 의미로, 템플릿 프로젝트를 하나 만들어 공유합니다.

BigSquareHasNoEdge/AuthenticationBackendForFrontend: Example for authentication backend for frontend

OAuth 혹은 OIDC 를 지원하는 외부 라이브러리를 사용하지 않고, 가급적 작은 클래스들로 구성해서, 승인 흐름을 직관적으로 이해하는데 도움이 되리라 생각됩니다.

위 패턴에 맞는 닷넷의 프론트엔드 앱으로는 Blazor Webassembly Standalone app 밖에 없기 때문에, 그것을 채택했습니다.

이론적으로는, 이 앱의 컴포넌트를 Blazor Hybrid Hosting 모델을 통해 WPF 나 윈폼 등에서 직접 사용할 수는 있지만, 인증 흐름을 처리할 때는 그렇지 않습니다.
하이브리드 모델과 호환성을 유지하기 위해서는, 몇 가지 변경을 해야 하는데, 개인적으로 PWA 에 좀 더 집중하고 있고, 시간도 많지 않아 그러한 구현은 생략했습니다.

참고로, 본 시리즈의 내용과 달리, 세션을 직접 사용하지 않고, Asp.net core 가 제공하는 CookieAuthenticationScheme 을 사용하도록 변경했습니다. 변경 후의 코드는 변경 전과 동일하게 동작합니다만, 두 코드를 비교해보시면, 인증 스킴을 이해하는데, 도움이 되리라 믿습니다.

.net 9.0 으로 작성되었으니, 실행해 보려면 설치하셔야 합니다.

7개의 좋아요

드디어 github 을 만드셨군요 이제 블로그도 시작하셔야죠

3개의 좋아요

포크해서 잘 보고 있습니다. 저처럼 잘 모르고 OAuth 사용하고 계신 분들도 이 소스코드 한번 살펴보고 비교도 해보시면 많이 도움 될 것 같습니다.

1개의 좋아요

잘 보고 계시다니 영광입니다.

1개의 좋아요