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
Seção intitulada “Cadastro”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.
Login, usuário logado e logout
Seção intitulada “Login, usuário logado e logout”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 comgeneral_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: chameget()antes.
Regras de senha
Seção intitulada “Regras de senha”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.
No servidor
Seção intitulada “No servidor”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).