← Documentação

Serviços para a sua aplicação

CLAUDO Auth

Cadastro e login dos usuários da sua aplicação, com JWT e OpenID Connect.

Ligar

Em Auth, escolha o projeto e clique em Ligar Auth. Com a opção marcada, CLAUDO_AUTH_URL (o emissor dos tokens) e CLAUDO_AUTH_CLIENT_ID vão para Production. Em Ajustes ficam o nome nas páginas, os endereços de retorno do login, os sites que chamam pelo navegador, a senha mínima, a duração do token e da sessão, e se o e-mail precisa ser confirmado.

Os usuários do Auth são da sua aplicação: nunca entram no painel da CLAUDO. Free até 5.000 usuários, Pro 100.000, Scale 1.000.000, somando as aplicações da organização.

Jeito mais simples: login pronto (OpenID Connect)

A CLAUDO hospeda as páginas de entrar, criar conta, esqueci a senha, código no e-mail e dois fatores. Use qualquer biblioteca OpenID Connect com o emissor CLAUDO_AUTH_URL (descoberta em /.well-known/openid-configuration), fluxo de código com PKCE S256. Cadastre o endereço de retorno em Ajustes.

Auth.js (Next.js)
providers: [
  {
    id: "claudo",
    name: "CLAUDO",
    type: "oidc",
    issuer: process.env.CLAUDO_AUTH_URL,
    clientId: process.env.CLAUDO_AUTH_CLIENT_ID,
    clientSecret: process.env.CLAUDO_AUTH_SECRET_KEY,
  },
],
// retorno: https://seu-site/api/auth/callback/claudo

A chave secreta (claudo_auth_sk_...) é criada em Chaves secretas e pode ir sozinha para CLAUDO_AUTH_SECRET_KEY. Só no servidor: chamada com ela vinda de navegador é recusada.

Conferir o token na sua API

Node, com jose
import { createRemoteJWKSet, jwtVerify } from "jose";

const issuer = process.env.CLAUDO_AUTH_URL!;
const jwks = createRemoteJWKSet(new URL(`${issuer}/.well-known/jwks.json`));

export async function usuario(token: string) {
  const { payload } = await jwtVerify(token, jwks, {
    issuer,
    audience: process.env.CLAUDO_AUTH_CLIENT_ID,
  });
  return { id: payload.sub, email: payload.email };
}

O token de acesso é RS256, com sub, email, email_verified, sid, iss e aud (o client_id). Depois de trocar a chave de assinatura, a antiga segue no JWKS por 24 horas.

API direta (telas próprias)

Para montar as próprias telas, chame os caminhos abaixo do emissor (CLAUDO_AUTH_URL/...), com JSON. Do navegador, só a partir dos sites cadastrados em Ajustes.

ChamadaCorpoDevolve
POST signupemail, password, nametokens, ou aviso de confirmar o e-mail
POST signinemail, passwordtokens, ou mfa_required e mfa_token
POST otp/send e otp/verifyemail e depois codelogin por código no e-mail
POST mfa/verifymfa_token, codetokens (código do app ou de recuperação)
POST tokengrant_type=refresh_token, refresh_tokentokens novos
POST signoutrefresh_tokenfim da sessão
POST recoveremaile-mail para trocar a senha
GET usercabeçalho Authorization: Bearer <token>o usuário

Os tokens vêm como { access_token, token_type, expires_in, refresh_token, user }. Erros como { error: { code, message } }. Do servidor, com a chave secreta, admin/users lista, cria, altera e apaga usuários.

Google, GitHub e dois fatores

  • Entrar com Google e GitHub usa o app OAuth da sua conta em cada um; o endereço de retorno a cadastrar lá aparece no painel. Funciona pelo login pronto.
  • Dois fatores (TOTP): o usuário liga em mfa/totp/enroll e mfa/totp/confirm, e recebe 10 códigos de recuperação.
  • Os e-mails de confirmação e de troca de senha saem pela CLAUDO.
  • Domínio próprio nas páginas de login ainda não existe.