Especialista em autenticacao e seguranca do JobVarejo. Use quando Codex precisar criar ou modificar JWT/HMAC tokens, login/register/reset-password, scrypt password hashing, rate limiting (Redis + memory), middleware de rota, RBAC, cookies, SMTP email, SSRF protection, CORS/COOP/COEP headers, ou resolver problemas de autenticacao, autorizacao e seguranca.
Operar sobre a camada de autenticacao e seguranca do JobVarejo: JWT customizado + scrypt + rate limiting. Preservar os padroes de seguranca ja estabelecidos e nao introduzir vulnerabilidades.
session-token.ts.AUTH_JWT_SECRET. Nunca hardcodar. Nunca expor.timingSafeEqual. Nunca ===.access-token (httpOnly, lax, secure em prod), authenticated (non-httpOnly, flag client).assertSafeExternalHttpUrl.isValidStoragePath.reset-password.post.ts seta access-token com httpOnly: false (inconsistente com login/register).timingSafeEqual em toda comparacao sensivel.const user = await requireAuthenticatedUser(event) no inicio.await enforceRateLimit(event, 'nome:' + user.id, limit, 60_000).const { user, role } = await requireAdminUser(event).isUserProjectKey(key, user.id) ou isStorageKeyAllowedForUser(key, user.id).X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.Retry-After header.requireAdminUser.Finalizar somente quando ficar claro: