signIn method
Implementation
Future<GitHubSignInResult> signIn(BuildContext context) async {
var authorizedResult;
if (kIsWeb) {
authorizedResult = await launchUrl(
Uri.parse(_generateAuthorizedUrl()),
webOnlyWindowName: '_self',
);
// Push data into authorized result somehow (if applicable)
} else {
authorizedResult = await Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => GitHubSignInPage(
url: _generateAuthorizedUrl(),
redirectUrl: redirectUrl,
userAgent: userAgent,
clearCache: clearCache,
title: title,
centerTitle: centerTitle,
),
),
);
}
if (authorizedResult == null ||
authorizedResult.toString().contains('access_denied')) {
return GitHubSignInResult(
GitHubSignInResultStatus.cancelled,
errorMessage: "Sign In attempt has been cancelled.",
);
} else if (authorizedResult is Exception) {
return GitHubSignInResult(
GitHubSignInResultStatus.failed,
errorMessage: authorizedResult.toString(),
);
}
// Exchange authorization code for access token
return await _getAccessToken(authorizedResult);
}