Refactor access token id lookup into Common::JWT
This commit is contained in:
parent
80db94c501
commit
f3c97c22dc
|
@ -14,6 +14,7 @@ use Digest::SHA
|
||||||
use JSON;
|
use JSON;
|
||||||
use Lemonldap::NG::Common::FormEncode;
|
use Lemonldap::NG::Common::FormEncode;
|
||||||
use Lemonldap::NG::Common::UserAgent;
|
use Lemonldap::NG::Common::UserAgent;
|
||||||
|
use Lemonldap::NG::Common::JWT qw(getAccessTokenSessionId);
|
||||||
use MIME::Base64 qw/encode_base64 decode_base64/;
|
use MIME::Base64 qw/encode_base64 decode_base64/;
|
||||||
use Mouse;
|
use Mouse;
|
||||||
|
|
||||||
|
@ -793,24 +794,9 @@ sub maybeJWT {
|
||||||
sub getAccessToken {
|
sub getAccessToken {
|
||||||
my ( $self, $access_token ) = @_;
|
my ( $self, $access_token ) = @_;
|
||||||
|
|
||||||
my $id;
|
my $id = getAccessTokenSessionId($access_token);
|
||||||
|
return unless $id;
|
||||||
|
|
||||||
# Access Token is a JWT, extract the JTI field
|
|
||||||
# and use it as session ID
|
|
||||||
if ( index( $access_token, '.' ) > 0 ) {
|
|
||||||
my $data = $self->getJWTJSONData($access_token);
|
|
||||||
if ( $data and $data->{jti} ) {
|
|
||||||
$id = $data->{jti};
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Access Token is the session ID directly
|
|
||||||
else {
|
|
||||||
$id = $access_token;
|
|
||||||
}
|
|
||||||
return $self->getOpenIDConnectSession( $id, "access_token" );
|
return $self->getOpenIDConnectSession( $id, "access_token" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user