signInWithGitHub method

Future<User?> signInWithGitHub({
  1. required String clientId,
  2. required String redirectUri,
})

Implementation

Future<User?> signInWithGitHub({required String clientId, required String redirectUri}) async {
  try {
    final result = await FlutterWebAuth.authenticate(
      url: "https://github.com/login/oauth/authorize?client_id=$clientId&redirect_uri=$redirectUri",
      callbackUrlScheme: Uri.parse(redirectUri).scheme,
    );

    final code = Uri.parse(result).queryParameters['code'];

    final AuthCredential credential = GithubAuthProvider.credential(code!);
    UserCredential userCredential = await _auth.signInWithCredential(credential);
    return userCredential.user;
  } catch (e) {
    print(e.toString());
    return null;
  }
}