getPkceCodeVerifier method

Future<String> getPkceCodeVerifier(
  1. RequestContext req, {
  2. bool body = true,
  3. String? state,
  4. Uri? uri,
})

Retrieves the PKCE code_verifier parameter from a RequestContext, or throws.

Implementation

Future<String> getPkceCodeVerifier(RequestContext req,
    {bool body = true, String? state, Uri? uri}) async {
  var data = body
      ? await req.parseBody().then((_) => req.bodyAsMap)
      : req.queryParameters;
  var codeVerifier = data['code_verifier'];

  if (codeVerifier == null) {
    throw AuthorizationException(ErrorResponse(ErrorResponse.invalidRequest,
        'Missing `code_verifier` parameter.', state,
        uri: uri));
  } else if (codeVerifier is! String) {
    throw AuthorizationException(ErrorResponse(ErrorResponse.invalidRequest,
        'The `code_verifier` parameter must be a string.', state,
        uri: uri));
  } else {
    return codeVerifier;
  }
}