NAME

Net::Async::Keycloak::OIDC - OpenID Connect against one Keycloak realm, asynchronously

VERSION

version 0.001

SYNOPSIS

my $oidc   = $kc->oidc;
my $claims = await $oidc->verify_token_f( $jwt, audience => 'my-api', type => 'Bearer' );
my $tokens = await $oidc->password_token_f( client_id => 'cli', username => 'alice', password => $pw );

DESCRIPTION

The asynchronous WWW::Keycloak::OIDC: the same methods with _f and futures. Token verification follows the same rules, including when the keys are fetched again.

issuer

Required. <base_url>/realms/<realm>.

http

Required. The Net::Async::HTTP to use.

algorithms

jwks_min_age

now

As in WWW::Keycloak::OIDC.

discovery_f

The discovery document, fetched once.

endpoint_f

my $url = await $oidc->endpoint_f('device_authorization_endpoint');

token_endpoint_f

userinfo_endpoint_f

introspection_endpoint_f

end_session_endpoint_f

device_endpoint_f

jwks_uri_f

A URL from the discovery document.

jwks_f

my $keys = await $oidc->jwks_f( force_refresh => 1 );

Callers asking while a fetch is under way share it; so do callers of "discovery_f".

verify_token_f

my $claims = await $oidc->verify_token_f( $jwt, audience => 'my-api', type => 'Bearer' );

userinfo_f

introspect_f

password_token_f

client_credentials_token_f

refresh_token_f

exchange_authorization_code_f

device_authorization_f

device_token_f

logout_f

As the methods without _f in WWW::Keycloak::OIDC, returning futures. A pending device-flow poll fails with an API error whose oauth_error is authorization_pending.

SUPPORT

Issues

Please report bugs and feature requests on GitHub at https://github.com/Getty/p5-net-async-keycloak/issues.

IRC

Join #kubernetes on irc.perl.org or message Getty directly.

CONTRIBUTING

Contributions are welcome! Please fork the repository and submit a pull request.

AUTHOR

Torsten Raudssus <getty@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2026 by Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.