NAME

Catalyst::Authentication::Credential::OAuth2 - Authenticate against OAuth2 servers

VERSION

version 0.001009

SYNOPSIS

__PACKAGE__->config(
  'Plugin::Authentication' => {
    default => {
      credential => {
        class     => 'OAuth2',
        grant_uri => 'http://authserver/request',
        token_uri => 'http://authserver/token',
        client_id => 'dead69beef'
      },
      store => { class => 'Null' }
    }
  }
);

DESCRIPTION

This module implements authentication via OAuth2 credentials, giving you a user object which stores tokens for accessing protected resources.

ATTRIBUTES

grant_uri

token_uri

client_id

Required attributes that you get from your Oauth2 provider

client_secret

optional secret code from your Oauth2 provider (you need to review the docs from your provider).

response_type

The Oauth2 response_type. Defaults to 'code'.

scope

Value of 'scope' field submitted to the grant_uri. Optional.

audience

Value of 'audience' field submitted to the grant_uri. Optional.

token_uri_method

Default is GET; some providers require POST

token_uri_post_content_type

Default is 'application/x-www-form-urlencoded', some providers support 'application/json'.

has_extra_find_user_token_fields

By default we call ->find_user on the store with a hashref that contains key 'token' and the value of the access_token (which we get from calling the 'token_uri'). The results of calling the token_uri is usually a JSON named array structure which can contain other fields such as id_token (typically a JWT). You can set this to an arrayref of extra fields you want to pass.

AUTHOR

Eden Cardim <edencardim@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Suretec Systems Ltd.

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