refreshToken method

void refreshToken({
  1. dynamic onSuccess(
    1. RefreshTokenData data
    ) = _defaultOnTokenRefreshed,
  2. dynamic onError(
    1. RefreshTokenError refreshTokenError
    ) = _defaultOnRefreshTokenError,
  3. RefreshTokenParams params = const RefreshTokenParams._(),
})

Initiates token refreshing with optional params.

onSuccess is called upon successful token refreshing with the new token. If any error was encountered during refreshing, calls onError instead.

Usage example:

final vkid = await VKID.getInstance();
vkid.refreshTooken(
.   onSuccess: (data) => print(data.token),
    onError: (error) => print(error),
    params: RefreshTokenParamsBuilder().withState("some state").build()
);

Implementation

void refreshToken({
  Function(RefreshTokenData data) onSuccess = _defaultOnTokenRefreshed,
  Function(RefreshTokenError refreshTokenError) onError =
      _defaultOnRefreshTokenError,
  RefreshTokenParams params = const RefreshTokenParams._(),
}) async {
  try {
    final List<Object?> result =
        await _platform.invokeMethod("refreshToken", []);
    onSuccess(RefreshTokenData._(result[0] as String));
  } on PlatformException catch (e) {
    onError(e.code == "expired"
        ? const RefreshTokenExpiredError._()
        : RefreshTokenOtherError._(e.message ?? ""));
  } catch (e) {
    onError(const RefreshTokenOtherError._("unknown error"));
  }
}