signIn method
Future
signIn(
{ - bool reAuthenticate = false,
- bool suppressErrors = true,
- bool silentOnly = false,
})
reAuthenticate has no effect in extension
- Throw if sign in failed
Implementation
@override
Future signIn({
bool reAuthenticate = false,
bool suppressErrors = true,
bool silentOnly = false,
}) async {
var debugPrefix = '$runtimeType.signIn()';
lazy.log('$debugPrefix:', forced: debugLog);
var tokenDetails = TokenDetails(
interactive: !silentOnly,
scopes: scopes,
);
try {
// No checking if token is empty or not,
// just get it again as it should be fast,
// and trigger login if necessary
// authTokenResult = Map{'token': token, 'grantedScopes': scopes}
GetAuthTokenResult authTokenResult =
await _api.getAuthToken(tokenDetails);
lazy.log('$debugPrefix:authTokenResult:${authTokenResult.toString()}',
forced: debugLog);
// we only need token
token.value = authTokenResult.token ?? '';
_photoUrl = await getPhotoUrl(token.value);
isSignedIn.value = token.value.isNotEmpty;
} catch (e) {
_reset();
lazy.log('$debugPrefix:catch:$e', forced: debugLog);
throw ('$debugPrefix:$e');
}
}