getAuthGrant method

  1. @override
Future<UserSessionResult> getAuthGrant([
  1. String? accessToken
])
override

getAuthGrant using Flutter

This methods checks if application is launched with a link. If it is, it will get the auth grant and return it.

If accessToken is defined this method not check the deep link.

Implementation

@override
Future<UserSessionResult> getAuthGrant([String? accessToken]) async {
  if (_usedAuthToken == accessToken && currentState.isLoggedIn) {
    return UserSessionResult(
        user: currentState.user, session: currentState.session);
  }

  if (accessToken != null) {
    _usedAuthToken = accessToken;
    return super.getAuthGrant(accessToken);
  }

  var redirect =
      Redirect._fromRoute(await AppLinks().getInitialAppLinkString());

  if (redirect is RedirectWithToken && redirect.error == null) {
    if (_usedAuthToken == redirect.token && currentState.isLoggedIn) {
      return UserSessionResult(
          user: currentState.user, session: currentState.session);
    }
    _usedAuthToken = redirect.token;
    return super.getAuthGrant(redirect.token);
  }

  return super.getAuthGrant();
}