Logto와 함께 ASP.NET Core 인증 구현하기
Logto SDK를 통합하여 ASP.NET Core에서 사용자 인증 흐름을 구축하는 방법을 배워보세요.
Logto SDK를 통합하여 ASP.NET Core에서 사용자 인증 흐름을 구축하는 방법을 배워보세요.
이 튜토리얼에서는, Logto SDK를 통합하여 ASP.NET Core에서 사용자 인증 흐름을 구축하는 방법을 보여줍니다. 이 튜토리얼에서는 프로그래밍 언어로 C#을 사용합니다.
시작하기 전에 다음을 확인해야 합니다:
시작하려면, "전통적인 웹" 유형의 Logto 애플리케이션을 작성합니다. Logto 애플리케이션을 만들려면 다음 단계를 따르십시오:
그런 다음 ASP.NET Core 애플리케이션과 Logto SDK를 통합하는 프로세스를 안내하는 대화식 튜토리얼을 볼 수 있습니다. 다음 내용은 차후 참조를 위한 것입니다.
ASP.NET Core의 최소 지원 버전은 6.0입니다.
Startup.cs(또는 Program.cs)를 열고 Logto 인증 미들웨어를 등록하는 다음 코드를 추가합니다:
AddLogtoAuthentication 메서드는 다음 기능을 수행합니다:
LogtoDefaults.CookieScheme으로 설정합니다.LogtoDefaults.AuthenticationScheme으로 설정합니다.LogtoDefaults.AuthenticationScheme으로 설정합니다.Logto 애플리케이션 상세 페이지의 리다이렉트 URI 목록에 다음 URI를 추가합니다:
Logto와 함께 로그인하려면 ChallengeAsync 메서드를 사용할 수 있습니다:
ChallengeAsync 메서드는 사용자를 Logto 로그인 페이지로 리다이렉트합니다.
RedirectUri 속성은 인증 후 웹 애플리케이션으로 사용자를 다시 리다이렉트하는 데 사용됩니다. 이것은 Logto 애플리케이션 상세 페이지에서 구성한 리다이렉트 URI와는 다르다는 점에 유의하십시오:
RedirectUri 속성은 Logto 인증 미들웨어에서 필요한 조치가 취해진 후 리다이렉트될 URI입니다.동작 순서는 1 -> 2입니다. 명확함을 위해 Logto 애플리케이션 상세 페이지의 리다이렉트 URI를 Logto 리다이렉트 URI라고 하고 RedirectUri 속성을 애플리케이션 리다이렉트 URI라고 부르겠습니다.
Logto 리다이렉트 URI는 기본값이 /Callback으로, 특별한 요구 사항이 없는 경우 그대로 두면 됩니다. 이를 변경하려면 LogtoOptions에 대해 CallbackPath 속성을 설정할 수 있습니다:
Logto 애플리케이션 상세 페이지에서 해당 값을 적절히 업데이트하는 것을 잊지 마십시오.
Logto 애플리케이션 상세 페이지의 로그아웃 후 리다이렉트 URI 목록에 다음 URI를 추가합니다:
Logto와 함께 로그아웃하려면 SignOutAsync 메서드를 사용할 수 있습니다:
SignOutAsync 메서드는 인증 쿠키를 지우고 사용자를 Logto 로그아웃 페이지로 리다이렉트합니다.
RedirectUri 속성은 로그아웃 후 웹 애플리케이션으로 사용자를 다시 리다이렉트하는 데 사용됩니다. 이것은 Logto 애플리케이션 상세 페이지에서 구성한 로그아웃 후 리다이렉트 URI와는 다르다는 점에 유의하십시오:
RedirectUri 속성은 Logto 인증 미들웨어에서 필요한 조치가 취해진 후 리다이렉트될 URI입니다.동작 순서는 1 -> 2입니다. 명확함을 위해 Logto 애플리케이션 상세 페이지의 로그아웃 후 리다이렉트 URI를 Logto 로그아웃 후 리다이렉트 URI라고 하고 RedirectUri 속성을 애플리케이션 로그아웃 후 리다이렉트 URI라고 부르겠습니다.
Logto 로그아웃 후 리다이렉트 URI는 기본값이 /SignedOutCallback으로, 특별한 요구 사항이 없는 경우 그대로 두면 됩니다. 이를 변경하려면 LogtoOptions에 대해 SignedOutCallbackPath 속성을 설정할 수 있습니다:
Logto 애플리케이션 상세 페이지에서 해당 값을 적절히 업데이트하는 것을 잊지 마십시오.
먼저, PageModel에 핸들러 메서드를 추가합니다, 예를 들면:
그런 다음, Razor 페이지(html)에 버튼을 추가합니다:
<p>Is authenticated: @User.Identity?.IsAuthenticated</p>
<form method="post">
@if (User.Identity?.IsAuthenticated == true)
{
<button type="submit" asp-page-handler="SignOut">로그아웃</button>
} else {
<button type="submit" asp-page-handler="SignIn">로그인</button>
}
</form>
인증되지 않은 사용자에게는 "로그인" 버튼이 표시되고, 인증된 사용자에게는 "로그아웃" 버튼이 표시됩니다.
이제 웹 애플리케이션을 실행하고 Logto로 로그인/로그아웃을 시도할 수 있습니다:
통합 중 문제가 있으면 망설이지 마시고 [email protected]로 이메일을 보내거나 Discord 서버에 가입하세요!