The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

EveOnline::SSO - Module for Single Sign On in EveOnline API-services.

SYNOPSIS

    use EveOnline::SSO;

    my $sso = EveOnline::SSO->new(client_id => '03ed7324fe4f455', client_secret => 'bgHejXdYo0YJf9NnYs');
    
    # return url for open in browser
    print $sso->get_code();
    # or
    print $sso->get_code(state => 'some_ids_or_flags');
    # or
    print $sso->get_code(state => 'some_ids_or_flags', scope=>'esi-calendar.respond_calendar_events.v1 esi-location.read_location.v1');

    # return hash with access and refresh tokens by auth code
    print Dumper $sso->get_token(code=>'tCaVozogf45ttk-Fb71DeEFcSYJXnCHjhGy');
    # or hash with access and refresh tokens by refresh_token
    print Dumper $sso->get_token(refresh_token=>'berF1ZVu_bkt2ud1JzuqmjFkpafSkobqdso');
    
    # return hash with access and refresh tokens through listening light web-server
    print Dumper $sso->get_token_through_webserver(
                        scope=>'esi-calendar.respond_calendar_events.v1 esi-location.read_location.v1', 
                        state=> 'Awesome'
                    );

DESCRIPTION

EveOnline::SSO is a perl module for get auth in https://eveonline.com through Single Sign-On (OAuth) interface.

CONSTRUCTOR

new()

Require two arguments: client_id and client_secret. Optional arguments: callback_url. Default is http://localhost:10707/

Get your client_id and client_secret on EveOnline developers page: https://developers.eveonline.com/

METHODS

get_code()

Return URL for open in browser.

Optional params: state, scope

See available scopes on https://developers.eveonline.com/

    # return url for open in browser
    print $sso->get_code();
    
    # or
    print $sso->get_code(state => 'some_ids_or_flags');
    
    # or
    print $sso->get_code(scope=>'esi-calendar.respond_calendar_events.v1 esi-location.read_location.v1');
get_token()

Return hashref with access and refresh tokens. refresh_token is undef if code was received without scopes.

Need "code" or "refresh_token" in arguments.

    # return hash with access and refresh tokens by auth code
    print Dumper $sso->get_token(code=>'tCaVozogf45ttk-Fb71DeEFcSYJXnCHjhGy');
    
    # or hash with access and refresh tokens by refresh_token
    print Dumper $sso->get_token(refresh_token=>'berF1ZVu_bkt2ud1JzuqmjFkpafSkobqdso');
get_token_through_webserver()

Return hashref with access and refresh tokens by using local webserver for get code. Use callback_url parameter for start private web server on host and port in callback url.

Default url: http://localhost:10707/

    # return hash with access and refresh tokens
    print Dumper $sso->get_token_through_webserver(scope=>'esi-location.read_location.v1');

LICENSE

Copyright (C) Andrey Kuzmin.

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

AUTHOR

Andrey Kuzmin <chipsoid@cpan.org>