> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# Autenticação nativa

Gere o caminho de retorno do browser e as sessões guardadas no mobile.

## Instalação e configuração

Antes de qualquer etapa, leia [Antes de começar](https://supastack.dev/pt/docs/web/before-you-start.md) e [Noções básicas sobre terminal](https://supastack.dev/pt/docs/web/terminal-basics.md). Estas instruções presumem que você abriu o monorepo supastack completo no VS Code; sua raiz package.json marca a raiz do repositório. Nos comandos pnpm, um pacote de espaço de trabalho é um aplicativo ou uma pasta de código compartilhado; no produto, um espaço de trabalho é o contêiner de dados e o limite de segurança de uma equipe. corepack pnpm --filter ... seleciona um pacote do monorepo enquanto os comandos são executados a partir de sua raiz. Se você abriu apenas uma pasta móvel ou desktop sincronizada, ela não contém o back-end da Web, a configuração do Docker ou os scripts raiz: execute o back-end deste monorepo ou de um servidor hospedado acessível e use os próprios scripts da pasta da plataforma. Uma variável de ambiente é uma configuração nomeada armazenada em um arquivo .env local ou no painel de hospedagem; reinicie o aplicativo relevante após alterá-lo e mantenha os segredos do servidor fora dos valores NEXT_PUBLIC_ e EXPO_PUBLIC_.

1. Abra apps/mobile/src/auth/client.ts e apps/mobile/src/auth/mobile-auth-configuration.ts no VS Code para encontrar o fluxo de login existente.

2. Coloque EXPO_PUBLIC_API_URL e EXPO_PUBLIC_APP_SCHEME em apps/mobile/.env.local e certifique-se de que o servidor Web tenha suas próprias configurações em apps/web/.env.local.

3. A partir da raiz, inicie a Web com corepack pnpm --filter @supastack/web dev e, em outro terminal, inicie Expo com corepack pnpm --filter @supastack/mobile start. Esperado: um login de teste abre o navegador e retorna ao aplicativo móvel. Em um telefone físico, use o endereço Wi-Fi/LAN acessível do computador para o API; phone-localhost significa o próprio telefone.

A app mobile usa a integração Better Auth Expo e o armazenamento seguro nativo. O origin da API e o scheme da app devem corresponder à configuração nativa e ao fluxo de retorno permitido do servidor de auth.

```
EXPO_PUBLIC_API_URL=https://your-api.example
EXPO_PUBLIC_APP_SCHEME=supastack
```


## Comandos para copiar

Siga os comentários para ver em qual pasta um comando é executado. Se dois terminais estiverem rotulados, abra duas janelas de terminal e mantenha o primeiro comando em execução enquanto usa o segundo.

```
# Terminal 1 — Web API (from the monorepo root):
corepack pnpm --filter @supastack/web dev

# Terminal 2 — Expo app (from the monorepo root):
corepack pnpm --filter @supastack/mobile start
```


## Fluxo de implementação

Segue o cliente de auth nativo existente em vez de copiar pressupostos de cookies web para o mobile. Abre a auth de fornecedor através do fluxo de browser configurado, trata o seu callback e depois resolve a sessão autenticada antes de apresentar ações protegidas.

Mantenha o login cancelado distinto do login concluído. Os membros podem ativar o bloqueio biométrico do aplicativo (Face ID, Touch ID ou impressão digital em `apps/mobile/src/security/app-lock.ts` em Configurações → Segurança) para proteger o retorno ao primeiro plano. Limpe a apresentação local do usuário anterior e o cache de leitura offline vinculado ao workspace (`apps/mobile/src/offline/`) ao sair, e verifique se a sessão do servidor não pode mais executar ações protegidas.


## Verificação e resolução de problemas

Se o login abrir um navegador, mas não retornar ao aplicativo, verifique se EXPO_PUBLIC_APP_SCHEME corresponde ao esquema em apps/mobile/app.config.ts. Se o aplicativo não conseguir acessar o servidor, substitua localhost pelo endereço LAN do computador, confirme se ambos os dispositivos usam a mesma rede e reinicie Expo após a edição apps/mobile/.env.local. Expo Go é uma visualização da IU; a aceitação de compra nativa precisa de uma versão de desenvolvimento EAS.

Exercita callbacks de arranque frio, retorno a uma app em execução, login cancelado e sessões expiradas no build alvo. Se o browser voltar mas a app continuar sem sessão, inspeciona a correspondência de scheme e a alcançabilidade da API antes de mudar a configuração do fornecedor.


Para continuar a configuração, leia [Direitos de acesso em dispositivos móveis](https://supastack.dev/pt/docs/mobile/entitlements.md).


## Seguinte

[API mobile](https://supastack.dev/pt/docs/mobile/api.md)
