Construa autenticação ASP.NET Core com Logto
Aprenda a construir um fluxo de autenticação de usuário com ASP.NET Core integrando o SDK Logto.
Aprenda a construir um fluxo de autenticação de usuário com ASP.NET Core integrando o SDK Logto.
Neste tutorial, mostraremos como construir um fluxo de autenticação do usuário com ASP.NET Core integrando o SDK Logto. O tutorial usa C# como linguagem de programação.
Antes de começar, certifique-se de ter o seguinte:
Para começar, crie uma aplicação Logto do tipo "Web tradicional". Siga estas etapas para criar uma aplicação Logto:
Então, você deve ver um tutorial interativo guiando você através do processo de integração do SDK Logto com sua aplicação ASP.NET Core. O seguinte conteúdo pode ser uma referência para uso futuro.
Note que a versão mínima suportada do ASP.NET Core é 6.0.
Abra Startup.cs (ou Program.cs) e adicione o código a seguir para registrar o middleware de autenticação Logto:
O método AddLogtoAuthentication fará as seguintes coisas:
LogtoDefaults.CookieScheme.LogtoDefaults.AuthenticationScheme.LogtoDefaults.AuthenticationScheme.Adicione o seguinte URI à lista Redirect URIs na página de detalhes da aplicação Logto:
Para fazer sign-in com Logto, você pode usar o método ChallengeAsync:
O método ChallengeAsync redirecionará o usuário para a página de sign-in Logto.
A propriedade RedirectUri é usada para redirecionar o usuário de volta para sua aplicação web após a autenticação. Note que é diferente do URI de redirect que você configurou na página de detalhes da aplicação Logto:
RedirectUri é o URI que será redirecionado após as ações necessárias terem sido executadas no middleware de autenticação Logto.A ordem das ações é 1 -> 2. Para tornar claro, vamos chamar o URI de redirecionamento na página de detalhes da aplicação Logto de URI de redirecionamento Logto e a propriedade RedirectUri de URI de redirecionamento da aplicação.
O URI de redirecionamento de Logto tem um valor padrão de /Callback, que você pode deixar como está se não houver requisito especial. Se você quiser mudar, pode definir a propriedade CallbackPath para LogtoOptions:
Lembre-se de atualizar o valor na página de detalhes da aplicação Logto de acordo.
Adicione o seguinte URI à lista Post sign-out redirect URIs na página de detalhes da aplicação Logto:
Para fazer sign-out com Logto, você pode usar o método SignOutAsync:
O método SignOutAsync limpará o cookie de autenticação e redirecionará o usuário para a página de sign-out Logto.
A propriedade RedirectUri é usada para redirecionar o usuário de volta para sua aplicação web após o sign-out. Note que é diferente do URI de redirecionamento após o sign-out que você configurou na página de detalhes da aplicação Logto:
RedirectUri é o URI que será redirecionado após as ações necessárias terem sido executadas no middleware de autenticação Logto.A ordem das ações é 1 -> 2. Para tornar claro, vamos chamar o URI de redirecionamento após o sign-out na página de detalhes da aplicação Logto de URI de redirecionamento após o sign-out Logto e a propriedade RedirectUri de URI de redirecionamento após o sign-out da aplicação.
O URI de redirecionamento após o sign-out Logto tem um valor padrão de /SignedOutCallback, que você pode deixar como está se não houver requisito especial. Se você quiser mudar, pode definir a propriedade SignedOutCallbackPath para LogtoOptions:
Lembre-se de atualizar o valor na página de detalhes da aplicação Logto de acordo.
Primeiro, adicione os métodos de manipulação ao seu PageModel, por exemplo:
Em seguida, adicione os botões à sua página Razor (html):
<p>Está autenticado: @User.Identity?.IsAuthenticated</p>
<form method="post">
@if (User.Identity?.IsAuthenticated == true)
{
<button type="submit" asp-page-handler="SignOut">Desconectar</button>
} else {
<button type="submit" asp-page-handler="SignIn">Conectar</button>
}
</form>
Ele mostrará o botão "Conectar" se o usuário não está autenticado, e mostrará o botão "Desconectar" se o usuário está autenticado.
Agora você pode executar a aplicação web e tentar fazer sign-in/sign-out com Logto:
Se você encontrar algum problema durante a integração, por favor, não hesite em nos contatar por e-mail em [email protected] ou junte-se ao nosso servidor Discord!