Cada objeto de Usuario contiene un token JWT que puedes usar para acceder a los Servicios de Atlas App.
Puede usar el token de acceso para consultar la API de Atlas GraphQL desde su aplicación cliente. Utilice cualquier cliente GraphQL para consultar la API de Atlas GraphQL, como graphql_flutterPara obtener más información sobre cómo configurar y consultar la API Atlas GraphQL, consulte API Atlas GraphQL en la documentación de App Services.
Retrieve the Access Token
Puede obtener el token de acceso con la propiedad User.accessToken.
final token = app.currentUser?.accessToken;
Actualizar el token de acceso
El token de acceso caduca 30 minutos después de que el usuario inicia sesión. No se actualiza automáticamente. Actualícelo con User.refreshCustomData().
Future<String> getValidAccessToken(User user) async { // An already logged in user's access token might be stale. To // guarantee that the token is valid, refresh it if necessary. await user.refreshCustomData(); return user.accessToken; }
También puede actualizar periódicamente el token de acceso con Timer.periodic() desde el dart:async biblioteca. Envuelva la llamada a User.refreshCustomData() con la función de devolución de llamada del temporizador.
// Refresh the token every 29 minutes Timer.periodic(Duration(minutes: 29), (_) { app.currentUser?.refreshCustomData(); });
Vencimiento del token de actualización
Los tokens de actualización caducan tras un periodo determinado. Cuando caducan, el token de acceso ya no se puede actualizar y el usuario debe volver a iniciar sesión.
Si el token de actualización caduca después de abrir el dominio, el dispositivo no podrá sincronizarse hasta que el usuario vuelva a iniciar sesión. El controlador de errores de sincronización debe implementar una lógica que detecte un error de token caducado al intentar sincronizar y luego redirija a los usuarios a un flujo de inicio de sesión.
Para obtener información sobre cómo configurar la expiración del token de actualización, consulte Administrar sesiones de usuario en la documentación de App Services.