Autenticação e conta (/auth/*, /profile*, /password/*).
O cliente da SDK é imutável, então nenhuma rota guarda o Bearer Token
sozinha: login/3, verify_2fa/3 e refresh/2 devolvem a sessão retornada
pela plataforma e cabe a você aplicar o token com authenticate/2 — ou usar
ApiBrasil.login/2, que já devolve o cliente autenticado.
alias ApiBrasil.Platform.Auth
{:ok, sessao} =
Auth.login(client, %{"email" => "voce@empresa.com.br", "password" => "******"})
client =
if Auth.requires_2fa?(sessao) do
desafio = sessao["challenge"]
{:ok, _} = Auth.send_2fa(client, %{"challenge" => desafio, "method" => "email"})
{:ok, sessao} =
Auth.verify_2fa(client, %{"challenge" => desafio, "code" => "000000"})
Auth.authenticate(client, sessao)
else
Auth.authenticate(client, sessao)
end
Summary
Functions
Devolve um novo cliente com o Bearer Token da sessão aplicado.
Troca a senha com a sessão ativa: POST /password/change.
Como change_password/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Lê o Bearer Token de uma resposta de autenticação.
Autentica com email/senha: POST /auth/login.
Como login/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Encerra a sessão: POST /auth/logout.
Como logout/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Perfil atual: GET /profile/me.
Como me/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Inicia a recuperação de senha: POST /auth/password/forgot.
Como password_forgot/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Reenvia o código de recuperação: POST /auth/password/resend.
Como password_resend/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Redefine a senha: POST /auth/password/reset.
Como password_reset/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Valida o código de recuperação: POST /auth/password/verify-code.
Como password_verify_code/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Perfil completo, com estatísticas: POST /profile.
Como profile/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Renova o JWT: POST /refresh.
Como refresh/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Cria uma conta: POST /auth/register.
Como register/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Cadastro simplificado: POST /auth/register/simple.
Como register_simple/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Informa se a resposta de login exige segundo fator.
Envia o código 2FA pelo método escolhido (email, sms, whatsapp,
call): POST /auth/2fa/send.
Como send_2fa/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Revoga o token atual: POST /auth/token/revoke.
Como token_revoke/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Rotaciona o token: POST /auth/token/rotate.
Como token_rotate/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Lista os métodos 2FA ativos da conta: GET /auth/2fa/methods.
Como two_factor_methods/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Atualiza o perfil: PUT /profile/me.
Como update_me/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Dispara a verificação de email/celular: POST /auth/verification/send.
Como verification_send/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Confirma o código de verificação: POST /auth/verification/verify.
Como verification_verify/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Valida o token atual: GET /auth/verify.
Como verify/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Conclui o login com o código 2FA: POST /auth/login/verify-2fa.
Como verify_2fa/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Types
@type result() :: {:ok, map()} | {:error, ApiBrasil.Core.Error.t()}
Functions
@spec authenticate(ApiBrasil.Client.t(), map()) :: ApiBrasil.Client.t()
Devolve um novo cliente com o Bearer Token da sessão aplicado.
Quando a sessão não traz token, devolve o cliente inalterado.
{:ok, sessao} = ApiBrasil.Platform.Auth.login(client, credenciais)
client = ApiBrasil.Platform.Auth.authenticate(client, sessao)
@spec change_password(ApiBrasil.Client.t(), term(), keyword()) :: result()
Troca a senha com a sessão ativa: POST /password/change.
@spec change_password!(ApiBrasil.Client.t(), term(), keyword()) :: map()
Como change_password/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Lê o Bearer Token de uma resposta de autenticação.
Procura em authorization.token e, na sequência, em token — conforme a
rota. Devolve nil quando não há token (strings vazias contam como
ausentes).
@spec login(ApiBrasil.Client.t(), term(), keyword()) :: result()
Autentica com email/senha: POST /auth/login.
O body aceita email, password e turnstile_token. Se a conta tiver 2FA,
a resposta traz requires_2fa e challenge — use send_2fa/3 e
verify_2fa/3 para concluir.
Devolve apenas a sessão: aplique o token no cliente com authenticate/2
(ou use ApiBrasil.login/2, que já entrega o cliente autenticado).
@spec login!(ApiBrasil.Client.t(), term(), keyword()) :: map()
Como login/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec logout( ApiBrasil.Client.t(), keyword() ) :: result()
Encerra a sessão: POST /auth/logout.
O cliente é imutável e continua carregando o token antigo — descarte-o ou
use ApiBrasil.put_bearer_token(client, nil).
@spec logout!( ApiBrasil.Client.t(), keyword() ) :: map()
Como logout/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec me( ApiBrasil.Client.t(), keyword() ) :: result()
Perfil atual: GET /profile/me.
@spec me!( ApiBrasil.Client.t(), keyword() ) :: map()
Como me/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec password_forgot(ApiBrasil.Client.t(), term(), keyword()) :: result()
Inicia a recuperação de senha: POST /auth/password/forgot.
@spec password_forgot!(ApiBrasil.Client.t(), term(), keyword()) :: map()
Como password_forgot/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec password_resend(ApiBrasil.Client.t(), term(), keyword()) :: result()
Reenvia o código de recuperação: POST /auth/password/resend.
@spec password_resend!(ApiBrasil.Client.t(), term(), keyword()) :: map()
Como password_resend/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec password_reset(ApiBrasil.Client.t(), term(), keyword()) :: result()
Redefine a senha: POST /auth/password/reset.
@spec password_reset!(ApiBrasil.Client.t(), term(), keyword()) :: map()
Como password_reset/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec password_verify_code(ApiBrasil.Client.t(), term(), keyword()) :: result()
Valida o código de recuperação: POST /auth/password/verify-code.
@spec password_verify_code!(ApiBrasil.Client.t(), term(), keyword()) :: map()
Como password_verify_code/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec profile( ApiBrasil.Client.t(), keyword() ) :: result()
Perfil completo, com estatísticas: POST /profile.
@spec profile!( ApiBrasil.Client.t(), keyword() ) :: map()
Como profile/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec refresh( ApiBrasil.Client.t(), keyword() ) :: result()
Renova o JWT: POST /refresh.
Devolve a nova sessão: aplique o token no cliente com authenticate/2.
@spec refresh!( ApiBrasil.Client.t(), keyword() ) :: map()
Como refresh/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec register(ApiBrasil.Client.t(), term(), keyword()) :: result()
Cria uma conta: POST /auth/register.
@spec register!(ApiBrasil.Client.t(), term(), keyword()) :: map()
Como register/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec register_simple(ApiBrasil.Client.t(), term(), keyword()) :: result()
Cadastro simplificado: POST /auth/register/simple.
@spec register_simple!(ApiBrasil.Client.t(), term(), keyword()) :: map()
Como register_simple/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Informa se a resposta de login exige segundo fator.
@spec send_2fa(ApiBrasil.Client.t(), term(), keyword()) :: result()
Envia o código 2FA pelo método escolhido (email, sms, whatsapp,
call): POST /auth/2fa/send.
@spec send_2fa!(ApiBrasil.Client.t(), term(), keyword()) :: map()
Como send_2fa/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec token_revoke( ApiBrasil.Client.t(), keyword() ) :: result()
Revoga o token atual: POST /auth/token/revoke.
@spec token_revoke!( ApiBrasil.Client.t(), keyword() ) :: map()
Como token_revoke/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec token_rotate( ApiBrasil.Client.t(), keyword() ) :: result()
Rotaciona o token: POST /auth/token/rotate.
@spec token_rotate!( ApiBrasil.Client.t(), keyword() ) :: map()
Como token_rotate/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec two_factor_methods( ApiBrasil.Client.t(), keyword() ) :: result()
Lista os métodos 2FA ativos da conta: GET /auth/2fa/methods.
@spec two_factor_methods!( ApiBrasil.Client.t(), keyword() ) :: map()
Como two_factor_methods/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec update_me(ApiBrasil.Client.t(), term(), keyword()) :: result()
Atualiza o perfil: PUT /profile/me.
@spec update_me!(ApiBrasil.Client.t(), term(), keyword()) :: map()
Como update_me/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec verification_send(ApiBrasil.Client.t(), term(), keyword()) :: result()
Dispara a verificação de email/celular: POST /auth/verification/send.
@spec verification_send!(ApiBrasil.Client.t(), term(), keyword()) :: map()
Como verification_send/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec verification_verify(ApiBrasil.Client.t(), term(), keyword()) :: result()
Confirma o código de verificação: POST /auth/verification/verify.
@spec verification_verify!(ApiBrasil.Client.t(), term(), keyword()) :: map()
Como verification_verify/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec verify( ApiBrasil.Client.t(), keyword() ) :: result()
Valida o token atual: GET /auth/verify.
@spec verify!( ApiBrasil.Client.t(), keyword() ) :: map()
Como verify/2, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec verify_2fa(ApiBrasil.Client.t(), term(), keyword()) :: result()
Conclui o login com o código 2FA: POST /auth/login/verify-2fa.
Devolve a sessão autenticada: aplique o token no cliente com
authenticate/2.
@spec verify_2fa!(ApiBrasil.Client.t(), term(), keyword()) :: map()
Como verify_2fa/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.