waitForCode method
Waits for the callback and returns the authorization code, or null on timeout/error.
Implementation
Future<String?> waitForCode() async {
final completer = _codeCompleter;
if (completer == null) return null;
return completer.future;
}