request method

Future<String> request ({String clientId, String redirectUri, List<String> scopes })

Requests authorization code via Chrome Custom Tabs (on Android) and ASWebAuthenticationSession (on iOS).

Implementation

Future<String> request(
    {String clientId, String redirectUri, List<String> scopes}) async {
  final finalRedirectUri =
      redirectUri ?? "kakao${KakaoContext.clientId}://oauth";

  final params = {
    "client_id": clientId ?? KakaoContext.clientId,
    "redirect_uri": finalRedirectUri,
    "response_type": "code",
    "approval_type": "individual",
    "scope": scopes == null ? null : scopes.join(" ")
  };
  params.removeWhere((k, v) => v == null);
  final url = Uri.https(KakaoContext.hosts.kauth, "/oauth/authorize", params);
  return _parseCode(
      await launchWithBrowserTab(url, redirectUri: finalRedirectUri));
}