---
name: "Net::OAuth2::AuthorizationServer::ImplicitGrant"
section: "3pm"
platform: "linux"
package: "libnet-oauth2-authorizationserver-perl"
version: "0.28-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Net::OAuth2::AuthorizationServer::ImplicitGrant"
---

# Net::OAuth2::AuthorizationServer::ImplicitGrant(3pm)

OAuth2 Resource Owner Implicit Grant You "SHOULD NOT" use this grant type (see \<https://tools.ietf.org/html/draft-ietf-oauth-security-topics-15\>)

## NAME

Net::OAuth2::AuthorizationServer::ImplicitGrant - OAuth2 Resource Owner Implicit Grant

You "SHOULD NOT" use this grant type (see \<https://tools.ietf.org/html/draft-ietf-oauth-security-topics-15\>)

## SYNOPSIS

```
  my $Grant = Net::OAuth2::AuthorizationServer::ImplicitGrant->new(
    clients => {
      TrendyNewService => {
        # optional
        redirect_uri  => 'https://...',
        # optional
        scopes        => {
          post_images   => 1,
          annoy_friends => 1,
        },
      },
    }
  );
  # verify a client against known clients
  my ( $is_valid,$error,$scopes ) = $Grant->verify_client(
    client_id     => $client_id,
    redirect_uri  => $uri,                     # optional
    scopes        => [ qw/ list of scopes / ], # optional
  );
  if ( ! $Grant->login_resource_owner ) {
    # resource owner needs to login
    ...
  }
  # have resource owner confirm (and perhaps modify) scopes
  my ( $confirmed,$error,$scopes_ref ) = $Grant->confirm_by_resource_owner(
    client_id       => $client_id,
    scopes          => [ qw/ list of scopes / ],
  );
  # generate a token
  my $token = $Grant->token(
    client_id       => $client_id,
    scopes          => $scopes_ref,
    redirect_uri    => $redirect_uri,
    user_id         => $user_id,      # optional
        jwt_claims_cb   => sub { ... },   # optional, see jwt_claims_cb in Manual
  );
  # store access token
  $Grant->store_access_token(
    client_id         => $client,
    access_token      => $access_token,
    scopes            => $scopes_ref,
  );
  # verify an access token
  my ( $is_valid,$error ) = $Grant->verify_access_token(
    access_token     => $access_token,
    scopes           => $scopes_ref,
  );
```

## DESCRIPTION

This module implements the OAuth2 "Resource Owner Implicit Grant" flow as described at \<http://tools.ietf.org/html/rfc6749#section-4.2\>.

## CONSTRUCTOR ARGUMENTS

Along with those detailed at "CONSTRUCTOR ARGUMENTS" in Net::OAuth2::AuthorizationServer::Manual the following are supported by this grant type:

## CALLBACK FUNCTIONS

The following callbacks are supported by this grant type:

```
  verify_client_cb
  login_resource_owner_cb
  confirm_by_resource_owner_cb
  store_access_token_cb
  verify_access_token_cb
```

Please see "CALLBACK FUNCTIONS" in Net::OAuth2::AuthorizationServer::Manual for documentation on each callback function.

## AUTHOR

Lee Johnson - `"leejo@cpan.org"`

## LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. If you would like to contribute documentation or file a bug report then please raise an issue / pull request:

```
    https://github.com/Humanstate/net-oauth2-authorizationserver
```
