获取用户访问令牌 — Flutter SDK
Atlas Device SDK 已弃用。 有关详细信息,请参阅弃用页面。
GraphQL已弃用。 了解详情。
每个 User 对象都包含一个 JSON web token 令牌,您可以使用该令牌访问 Atlas App Services。
您可以使用访问权限令牌从客户端应用程序查询Atlas GraphQL API 。使用任何GraphQL客户端查询Atlas GraphQL API,例如 graphql_flutter 。要学习;了解有关设置和查询Atlas GraphQL API的更多信息,请参阅App Services文档中的 Atlas GraphQL API [已弃用] 。
检索访问令牌
您可以使用 User.accessToken 获取访问令牌 属性。
final token = app.currentUser?.accessToken;
刷新访问令牌
访问令牌将在用户登录30分钟后过期。 它不会自动刷新。 使用 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; }
您还可以使用 Timer.periodic() 定期刷新访问令牌 来自dart:async
库。使用计时器的回调函数封装对User.refreshCustomData()
的调用。
// Refresh the token every 29 minutes Timer.periodic(Duration(minutes: 29), (_) { app.currentUser?.refreshCustomData(); });
刷新令牌有效期
刷新令牌会在设定的时间段后过期。刷新令牌过期后,访问令牌将无法再刷新,用户必须重新登录。
如果刷新令牌在 Realm 打开后过期,则在用户再次登录之前设备无法进行同步。同步错误处理程序应实现在尝试同步时捕获令牌过期错误的逻辑,然后将用户重定向到登录流程。
有关配置刷新令牌过期时间的信息,请参阅 App Services 文档中的管理用户会话。