Construir autenticação ASP.NET Core com Logto
Aprenda como construir um fluxo de autenticação de usuário com ASP.NET Core ao integrar o SDK do Logto.
Aprenda como construir um fluxo de autenticação de usuário com ASP.NET Core ao integrar o SDK do Logto.
Neste tutorial, mostraremos como construir um fluxo de autenticação de usuário com ASP.NET Core ao integrar o SDK do Logto. O tutorial utiliza C# como a linguagem de programação.
Antes de começar, certifique-se de ter o seguinte:
Para começar, crie uma aplicação Logto com o tipo "Web tradicional". Siga estes passos para criar uma aplicação Logto:
Então você deve ver um tutorial interativo que o guia pelo processo de integração do SDK Logto com a sua aplicação ASP.NET Core. O conteúdo a seguir pode ser uma referência para uso futuro.
Observe que a versão mínima suportada do ASP.NET Core é 6.0.
Abra Startup.cs (ou Program.cs) e adicione o seguinte código 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 de Redirect URIs na página de detalhes da aplicação Logto:
Para entrar com o Logto, você pode usar o método ChallengeAsync:
O método ChallengeAsync redirecionará o usuário para a página de login do Logto.
A Propriedade RedirectUri é usada para redirecionar o usuário de volta para sua aplicação web após a autenticação. Observe que é diferente do URI de redirecionamento que você configurou na página de detalhes da aplicação Logto:
RedirectUri é o URI para o qual será redirecionado após as ações necessárias terem sido realizadas no middleware de autenticação Logto.A ordem das ações é 1 -> 2. Para maior clareza, chamaremos 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 Logto tem um valor padrão de /Callback, que você pode deixar como está se não tiver nenhum requisito especial. Se desejar alterá-lo, você pode definir a propriedade CallbackPath para LogtoOptions:
Lembre-se de atualizar o valor na página de detalhes da aplicação Logto adequadamente.
Adicione o seguinte URI à lista Post log out redirect URIs na página de detalhes da aplicação Logto:
Para sair com o Logto, você pode usar o método SignOutAsync:
O método SignOutAsync irá limpar o cookie de autenticação e redirecionar o usuário para a página de saída do Logto.
A propriedade RedirectUri é utilizada para redirecionar o usuário de volta para a sua aplicação web após o logout. Observe que é diferente do URI de redirecionamento pós logout que você configurou na página de detalhes da aplicação Logto:
RedirectUri é o URI para o qual será redirecionado após as ações necessárias terem sido realizadas no middleware de autenticação Logto.A ordem das ações é 1 -> 2. Para maior clareza, chamaremos o URI de redirecionamento pós logout na página de detalhes da aplicação Logto de URI de redirecionamento pós logout do Logto e a propriedade RedirectUri de URI de redirecionamento pós logout da aplicação.
O URI de redirecionamento pós logout do Logto tem um valor padrão de /SignedOutCallback, que você pode deixar como está se não houver nenhum requisito especial. Se quiser alterá-lo, você pode definir a propriedade SignedOutCallbackPath para LogtoOptions:
Lembre-se de atualizar o valor na página de detalhes da aplicação Logto adequadamente.
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">Sair</button>
} else {
<button type="submit" asp-page-handler="SignIn">Entrar</button>
}
</form>
Ele mostrará o botão "Entrar" se o usuário não estiver autenticado, e mostrará o botão "Sair" se o usuário estiver autenticado.
Agora você pode executar a aplicação web e tentar entrar/sair com o Logto:
Se encontrou algum problema durante a integração, não hesite em nos contatar pelo e-mail [email protected] ou junte-se ao nosso servidor no Discord!