Como adicionar o Login with Posty5 ao seu site ou app

Deixe as pessoas entrarem no seu site com a conta Posty5, como fazem com o Google: OpenID Connect, uma tela de consentimento e pacotes prontos para Node.js e Angular.

ADAnúncio
Como adicionar o Login with Posty5 ao seu site ou app

Todo novo formulário de cadastro pede mais uma senha às pessoas, e cada senha que você armazena é mais uma coisa a proteger. O Login with Posty5 permite que as pessoas entrem no seu site ou app com a conta Posty5 que já têm, do mesmo jeito que escolheriam Entrar com o Google.

Este artigo explica o que seus usuários veem, o que você ganha como desenvolvedor e os quatro passos para adicioná-lo. Ele faz parte da plataforma de desenvolvedores da Posty5 descrita no guia de chaves de API e SDKs.

O que é o Login with Posty5

A Posty5 agora é um provedor de OAuth 2.0 e OpenID Connect. Você registra seu app no Posty5 Studio, envia os usuários à Posty5 para entrar e recebe de volta um token de identidade assinado que informa ao seu servidor quem eles são. Seu site nunca vê a senha da Posty5 deles.

Como segue o padrão, funciona com os pacotes da Posty5 para Node.js e Angular e com qualquer biblioteca certificada de OpenID Connect: ASP.NET Core, Python, PHP ou Java. Registrar apps e fazer o login dos usuários não consome créditos, em nenhum plano.

O que seus usuários veem

  • Um botão Login with Posty5 ou Continuar com Posty5 na sua página de login.
  • A própria página de login da Posty5, se ainda não estiverem conectados: a senha é digitada somente em posty5.com.
  • Uma tela de consentimento com o nome, o logotipo, o site, a política de privacidade e os termos do seu app, e uma linha para cada dado que você pede, com Permitir e Cancelar.
  • A escolha fica salva: o próximo login passa direto. Eles podem remover o acesso do seu app a qualquer momento em Conta e depois Apps conectados.

O passo a passo completo do lado do usuário está em O que é o Login with Posty5 e meus dados estão seguros?, que você pode linkar na sua própria página de login.

O que você ganha como desenvolvedor

  • OpenID Connect padrão: o fluxo de código de autorização com PKCE obrigatório em todo login, e um documento de descoberta com o qual a maioria das bibliotecas se configura sozinha.
  • Tokens de identidade assinados (RS256) com o nome, a foto e o e-mail do usuário e se o e-mail foi verificado, apenas para os escopos que o usuário permitiu.
  • Um ID de usuário privado para o seu app. O sub é estável para o seu app e diferente nos apps de outros desenvolvedores, então os apps não conseguem cruzar usuários entre si.
  • @posty5/oauth para back ends Node.js, com links de login assinados que não precisam de armazenamento de sessão, e @posty5/oauth-angular, um botão Continuar com Posty5 personalizável para Angular.
  • Login pelo navegador para apps só de front end: ativado por app e aceito apenas das origens de site que você listar.
  • Uma aba Usuários para cada app no Posty5 Studio, e uma chave de API adicionada ao app que lê a mesma lista a partir do seu servidor.

Adicione em quatro passos

  1. No Posty5 Studio, abra Kit para desenvolvedores, depois Apps OAuth, e escolha Registrar app. Informe o nome, o logotipo e os links que os usuários vão ver, e seu endereço de retorno como URI de redirecionamento.
  2. Copie o ID do cliente e o segredo do cliente para a configuração do seu servidor. O segredo aparece uma única vez; você pode trocá-lo depois.
  3. Instale o @posty5/oauth e adicione duas rotas: uma que cria um link de login e envia o usuário à Posty5, e a sua rota de retorno, que verifica o resultado.
  4. Coloque um botão Login with Posty5 na sua página de login, entre uma vez você mesmo e vincule seus registros de usuário ao sub que você recebe.
const link = await posty5.createLoginLink({ returnTo: "/account" });
res.cookie("p5_binding", link.binding, { httpOnly: true, secure: true, sameSite: "lax" });
res.redirect(link.url);

// on your redirect URI
const { claims, returnTo } = await posty5.handleLoginCallback(req.query, { binding: req.cookies.p5_binding });

O link de login leva o verificador PKCE, o nonce e seu endereço de retorno dentro de um state selado, então seu servidor não guarda nada entre as duas requisições, e um cookie vincula o link ao navegador que o pediu.

Registre seu primeiro app OAuth

Crie o app no Posty5 Studio, copie as credenciais e teste um login no seu próprio site.

Escolha como integrar

  • Um site com back end Node.js: use o @posty5/oauth. O segredo do cliente fica no seu servidor.
  • Um app Angular: use o botão do @posty5/oauth-angular e deixe seu back end conduzir o login. Veja como adicionar um botão Continuar com Posty5 no Angular.
  • Um app estático sem back end: ative o login pelo navegador para o app, liste as origens do seu site e use o modo browser do pacote Angular ou qualquer cliente OpenID Connect com suporte a PKCE.
  • Qualquer outra linguagem: aponte sua biblioteca OpenID Connect para https://api.posty5.com com seu ID do cliente e seu segredo.

Limites para conhecer antes de começar

  • Não há tokens de atualização. O token de acesso dura 1 hora, então mantenha sua própria sessão após o login.
  • O login silencioso (prompt=none) não é oferecido. Você pode forçar um novo login com prompt=login ou max_age.
  • O Login with Posty5 compartilha apenas a identidade: nome, foto e e-mail. Ele não dá ao seu app acesso ao conteúdo do usuário na Posty5.
  • Uma conta pode registrar até 20 apps OAuth, cada um com até 10 URIs de redirecionamento exatas.

Perguntas frequentes

O Login with Posty5 consome créditos?

Não. Registrar apps OAuth e fazer o login dos usuários não consome créditos, em nenhum plano.

Quais dados meu app pode receber?

Somente o que o usuário permite: sempre um ID de usuário para o seu app, o nome e a foto de perfil com o escopo profile, e o e-mail e se ele foi verificado com o escopo email.

Posso usar sem back end?

Sim. Ative o login pelo navegador para o app e liste as origens do seu site. O navegador então troca o código com PKCE e sem segredo do cliente. Se você tem um back end, ele continua sendo o melhor lugar para o login.

Por que o ID de usuário é diferente no meu outro app?

O sub é pairwise: depende do host do primeiro URI de redirecionamento de cada app, então apps de desenvolvedores diferentes não conseguem cruzar usuários. Apps registrados com o mesmo host recebem o mesmo valor.

Posso ver quem entrou no meu app?

Sim. Cada app tem uma aba Usuários no Posty5 Studio, e uma chave de API adicionada ao app lê a mesma lista a partir do seu servidor, só com o que cada usuário compartilhou.

O que acontece quando um usuário remove o acesso?

Seus tokens de acesso para esse usuário param de funcionar, o usuário sai da sua lista de Usuários e o próximo login dele mostra a tela de consentimento de novo. A conta dele no seu site não é afetada.

ADAnúncio