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>