Português (Brasil)
  • asp-net-core
  • c-sharp
  • tutorial
  • auth
  • authentication
  • oauth
  • oidc
  • identity

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.

Gao
Gao
Founder

Introdução

  • Logto é uma alternativa moderna para Auth0 para construir infraestrutura de identidade do cliente com esforço mínimo. Ele suporta vários métodos de sign-in, incluindo nome de usuário, e-mail, número de telefone e sign-ins sociais populares, como Google e GitHub.
  • ASP.NET Core é um framework de código aberto, multiplataforma e de alto desempenho para a construção de aplicações modernas, baseadas em nuvem e conectadas à Internet.

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.

Pré-requisitos

Antes de começar, certifique-se de ter o seguinte:

Crie uma aplicação Logto

Para começar, crie uma aplicação Logto do tipo "Web tradicional". Siga estas etapas para criar uma aplicação Logto:

  1. Faça login no Console Logto.
  2. Na barra de navegação à esquerda, clique em Aplicações.
  3. Clique em Criar aplicação.
  4. Na página aberta, encontre a seção "Aplicação web tradicional" e localize o cartão "ASP.NET Core".
  5. Clique em Começar a construir e insira o nome da sua aplicação.
  6. Clique em Criar.

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.

Integre com SDK Logto

Instalação

Note que a versão mínima suportada do ASP.NET Core é 6.0.

Adicione o middleware de autenticação Logto

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:

  • Define o padrão do esquema de autenticação para LogtoDefaults.CookieScheme.
  • Define o padrão do esquema de desafio para LogtoDefaults.AuthenticationScheme.
  • Define o padrão do esquema de sign-out para LogtoDefaults.AuthenticationScheme.
  • Adiciona os manipuladores de autenticação de cookie e OpenID Connect ao esquema de autenticação.

Sign-in

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:

  1. O URI de redirecionamento na página de detalhes da aplicação Logto é o URI que Logto redirecionará o usuário de volta após o usuário ter feito o sign-in.
  2. A propriedade 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.

Sign-out

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:

  1. O URI de redirecionamento após o sign-out na página de detalhes da aplicação Logto é o URI que Logto redirecionará o usuário de volta após o usuário ter feito o sign-out.
  2. A propriedade 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.

Implemente botões de sign-in/sign-out (Razor Pages)

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.

Ponto de verificação: Execute a aplicação web

Agora você pode executar a aplicação web e tentar fazer sign-in/sign-out com Logto:

  1. Abra a aplicação web em seu navegador, você deve ver "Está autenticado: Falso" e o botão "Conectar".
  2. Clique no botão "Conectar", e você deve ser redirecionado para a página de sign-in Logto.
  3. Após você ter feito o sign-in, você deve ser redirecionado de volta para a aplicação web, e você deve ver "Está autenticado: Verdadeiro" e o botão "Desconectar".
  4. Clique no botão "Desconectar", e você deve ser redirecionado para a página de sign-out Logto, e depois redirecionado de volta para a aplicação web.

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!

Leituras adicionais