getAuthGrant method
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();
}