TheNetworg / oauth2-azure

Azure AD provider for the OAuth 2.0 Client.
https://packagist.org/packages/thenetworg/oauth2-azure
MIT License
229 stars 108 forks source link

Uncaught Error: Firebase\JWT\JWT::decode(): Argument #3 ($headers) cannot be passed by reference #188

Open ysipd26020 opened 1 year ago

ysipd26020 commented 1 year ago

When using "firebase/php-jwt": "6.7.0" the JWT cannot decoded because the handling of the third parameter ($headers) has changed in version 6.6.0 and later.

Forcing the composer.json to use 6.5.0 allows the JWT to be decoded.

I'm assuming that this upstream change is the breaking commit

https://github.com/firebase/php-jwt/commit/fb85f47cfaeffdd94faf8defdf07164abcdad6c3

Thanks

10n commented 1 year ago

Currently the release 2.1.1 has the following dependency "php": "^7.1|^8.0",

https://github.com/TheNetworg/oauth2-azure/blob/v2.1.1/composer.json

My suggestion is to drop entirely firebase/php-jwt": "~3.0||~4.0||~5.0" and only keep compatibility with ^6.0 because older version are not even compatible with PHP 7


"require": {
      "php": ">=5.3.0"
},

https://github.com/firebase/php-jwt/blob/v5.5.1/composer.json

ysipd26020 commented 1 year ago

Hi,

My PHP version is 7.4.x, the version of firebase/php-jwt is the version I'm referring to.

With PHP 7.4 using firebase/php-jwt 6.7.0 with oauth2-azure 2.1.1, I am getting the error due to decoding the JWT With PHP 7.4 using firebase/php-jwt 6.5.0 with oauth2-azure 2.1.1, I am able to see that the JWT provided by oauth2-azure is decoded by php-jwt.

I would assume that oauth2-azure would need to update its usage of the php-jwt library to support the change introduced in version 6.6.0 and further into 6.7.0

Thanks

10n commented 1 year ago

I have createa a pull request, that 3rd argument is not necessary anymore, the variable $keys already is converted to ann array of \Firebase\JWT\Key

https://github.com/TheNetworg/oauth2-azure/pull/189

10n commented 1 year ago

I was also suggesting dropping the compatibility, because that may have been the reason for using the 3rd argument.

janfejtek commented 1 year ago

it looks like third argument was used only before php-jwt 5.5 https://github.com/firebase/php-jwt/releases/tag/v5.5.0, so removing it breaks the compatibility with older versions anyway

infabo commented 1 year ago

Could you please release a new version? Thank you

tomasAl commented 1 year ago

Maybe someone knows when the 2.1.2 version will be released? Thank you

andrewsauder commented 1 year ago

I've submitted a PR to get this fixed. https://github.com/TheNetworg/oauth2-azure/pull/191

kojot1234 commented 1 year ago

@hajekj Would you mind pushing a release out, looks like multiple people are waiting for this. Thanks.

pps1 commented 1 year ago

@kojot1234 @hajekj Any news on 2.1.2? We too are running into this issue with firebase/php-jwt:6.8.1 and would prefer not version locking at 6.5.0. Thanks for your support!

casey977 commented 4 months ago

Any news on this?

kojot1234 commented 4 months ago

@casey977 If I remember correctly this has been resolved already and issue can be closed.

casey977 commented 4 months ago

@casey977 If I remember correctly this has been resolved already and issue can be closed.

Well, I'm here because I get the error...

lyrixx commented 4 months ago

@casey977 what version are you using?

casey977 commented 4 months ago

@casey977 what version are you using?

I use Laravel 10.46.0

lyrixx commented 4 months ago

what version of this lib. You can find it with composer show thenetworg/oauth2-azure