ユーザー アクセス トークンの取得 - Flutter SDK
GraphQL は非推奨です。 詳細はこちら。
すべての ユーザー オブジェクトには、JSON web token へのアクセスに使用できるAtlas App Services トークンが含まれています。
アクセス トークンを使用して、クライアントアプリケーションから Atlas GraphQL APIをクエリできます。 Atlas GraphQL APIなどの任意のGraphQLクライアントを使用して Atlas API をクエリします 。 Atlas GraphQL APIの設定とクエリの詳細については、App Services ドキュメントの 「 Atlas GraphQL API [非推奨] 」 を参照してください。
Retrieve the Access Token
ユーザー.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.perごと にアクセストークンを定期的に更新することもできますdart:async
ライブラリからの。User.refreshCustomData()
への呼び出しをタイマーのコールバック関数でラップします。
// Refresh the token every 29 minutes Timer.periodic(Duration(minutes: 29), (_) { app.currentUser?.refreshCustomData(); });
リフレッシュ トークンの有効期限
リフレッシュ トークンは一定期間後に期限切れになります。 更新トークンの有効期限が切れると、アクセス トークンの更新ができなくなり、ユーザーは再度ログインする必要があります。
Realm が開いた後に更新トークンの有効期限が切れると、ユーザーが再度ログインするまでデバイスは同期できなくなります。 同期エラー ハンドラーには、同期試行時にトークンの期限切れエラーを検出し、ユーザーをログイン フローにリダイレクトするロジックを実装する必要があります。
リフレッシュ トークンの有効期限の設定の詳細については、App Services ドキュメントの「ユーザー セッションの管理」を参照してください。