Pular para o conteúdo

Contas e sessão por e-mail e senha

Os usuários do seu app são do projeto: cada projeto tem os seus. No navegador, o serviço Account cuida da conta de quem está usando o app. A sessão fica num cookie, e todo pedido seguinte do SDK vai em nome desse usuário.

Antes de começar, confira em Autenticação → Métodos de login se E-mail e senha está ligado.

cadastro.ts
import { Account, ID } from '@owbase/web';
import { client } from './client';
const account = new Account(client);
// Cria a conta e entra com ela. A sessão fica num cookie do navegador.
await account.create({ userId: ID.unique(), email: '[email protected]', password: 'uma-senha-forte', name: 'Ana' });
await account.createEmailPasswordSession({ email: '[email protected]', password: 'uma-senha-forte' });
const user = await account.get();
console.log(`Olá, ${user.name} (${user.$id})`);

create só cria a conta; quem entra é o createEmailPasswordSession. Para pedir confirmação do e-mail, veja Verificação e recuperação.

conta.ts
import { Account } from '@owbase/web';
import { client } from './client';
const account = new Account(client);
// Entrar (a conta já existe).
await account.createEmailPasswordSession({ email: '[email protected]', password: 'uma-senha-forte' });
// Quem está logado? Sem sessão, get() falha com 401 (type general_unauthorized_scope).
const user = await account.get();
console.log(user.email, user.emailVerification ? 'e-mail confirmado' : 'e-mail não confirmado');
// Sair só neste aparelho ('current') ou de todos (deleteSessions).
await account.deleteSession({ sessionId: 'current' });
  • account.get() é o jeito de saber se há alguém logado: sem sessão, falha com general_unauthorized_scope (401), porque quem não está logado não tem acesso à conta.
  • deleteSession({ sessionId: 'current' }) sai deste aparelho; deleteSessions() sai de todos.
  • Tentar entrar com uma sessão já aberta dá user_session_already_exists: chame get() antes.

Em Autenticação → Segurança você define o tamanho mínimo, o bloqueio de senhas comuns e o histórico (impede repetir as últimas senhas). As regras valem no cadastro e na troca de senha.

O @owbase/node com chave de API não tem “usuário logado”: ele administra os usuários do projeto pelo serviço Users (Usuários pelo servidor).