Estou desenvolvendo um aplicativo móvel full-stack usando o Appwrite para autenticação e serviços de back-end. O front-end se comunica com um gateway de API personalizado que envia solicitações para vários microsserviços.
Atualmente, estou usando a função account.createJWT() do Appwrite para autenticar usuários, mas os tokens JWT expiram a cada 15 minutos. Atualizar tokens com tanta frequência não é escalável para o meu aplicativo, especialmente com o crescimento da base de usuários. Por isso, estou tentando migrar para a validação de sessão em vez de JWTs.
O problema que estou enfrentando é: como autenticar corretamente as solicitações de front-end para meu gateway de API usando sessões do Appwrite?
Detalhes do ambiente:
Backend API gateway is built with FastAPI
Appwrite version: cloud
Frontend framework: React Native
Minhas perguntas são:
What is the correct way to validate Appwrite user sessions from a backend service (API gateway) without using the frontend SDKs?
Is it possible to securely authenticate frontend requests to a custom backend using only Appwrite sessions (without using short-lived JWTs)?
If not, what would be the best scalable approach for authenticating requests in this setup?
Qualquer conselho, fluxo recomendado ou exemplos seriam muito apreciados!
Aqui está o que eu tentei:
I retrieve the user session on the frontend (account.get() gives me session info).
I send the session ID (or the Appwrite cookie) along with API requests to my gateway.
On the backend (in the API gateway), I try to validate the session by using the Appwrite Server SDK (account.getSession(sessionId)).
However, sometimes I get errors like:
Unauthorized: User is missing "account" scope.