passport icon indicating copy to clipboard operation
passport copied to clipboard

Invalid response received from Authorization Server. Expected JSON.

Open Supernova3339 opened this issue 2 years ago • 3 comments

Bug Report

Current Behavior Gets invalid JSON response and throws error

Steps to Reproduce

  1. Go to '/auth/passport'
  2. Click on 'authorize'
  3. See error

Expected Behavior

Response is successful and redirects with user authenticated

Screenshots Not needed to reproduce

Environment

  • Flarum version: 1.7.2
  • Extension version: 1.1.0
  • Webserver: apache
  • Hosting environment: vps
  • PHP version: 8.1.18
  • Browser: Firefox 113.0.1 ( 64 Bit Linux )
Flarum core: 1.7.2
PHP version: 8.1.18
MySQL version: 5.7.41-cll-lve
Loaded extensions: Core, date, libxml, openssl, pcre, sqlite3, zlib, bz2, calendar, ctype, curl, hash, filter, ftp, gettext, json, iconv, SPL, pcntl, readline, Reflection, session, standard, mbstring, shmop, SimpleXML, tokenizer,xml, bcmath, dom, fileinfo, gd, geoip, imap, intl, exif, mysqli, mysqlnd, PDO, pdo_mysql, pdo_sqlite, pgsql, Phar,posix, soap, sockets, sodium, xmlreader, xmlwriter, xsl, zip, ionCube Loader, Zend OPcache
+----------------------+---------+--------+
| Flarum Extensions    |         |        |
+----------------------+---------+--------+
| ID                   | Version | Commit |
+----------------------+---------+--------+
| flarum-flags         | v1.7.0  |        |
| flarum-approval      | v1.7.0  |        |
| sycho-private-facade | v0.1.12 |        |
| fof-passport         | 1.1.0   |        |
| flarum-tags          | v1.7.1  |        |
| flarum-suspend       | v1.7.0  |        |
| flarum-subscriptions | v1.7.0  |        |
| flarum-sticky        | v1.7.0  |        |
| flarum-statistics    | v1.7.0  |        |
| flarum-mentions      | v1.7.0  |        |
| flarum-markdown      | v1.7.0  |        |
| flarum-lock          | v1.7.0  |        |
| flarum-likes         | v1.7.0  |        |
| flarum-lang-english  | v1.7.0  |        |
| flarum-emoji         | v1.7.0  |        |
| flarum-bbcode        | v1.7.0  |        |
| extiverse-mercury    | 0.2.0   |        |
| blomstra-fontawesome | 0.1.5   |        |
| bilgehanars-packman  | v1.1    |        |
+----------------------+---------+--------+
Base URL: https://ommitted
Installation path: /home/supersft/ommitted
Queue driver: sync
Session driver: file
Mail driver: mail
Debug mode: off

Possible solution(s)

Additional Context This issue is present on Flarum 1.8.0

Supernova3339 avatar May 19 '23 16:05 Supernova3339

Can you share the exact error message? Is there any entry in Flarum or Laravel log file or is it just shown on the page?

Any difference when trying again with debug enabled in config.php?

Are you able to perform a request to your Laravel app from the command line on the Flarum server? like curl <Laravel homepage URL>

clarkwinkelmann avatar May 27 '23 15:05 clarkwinkelmann

Hi, similar problem here.

  • Flarum 1.8.5
  • Passport 11.10.5
  • Laravel 10.44.0

The exact error message is OP's title. Here is the stack trace if that helps : flarum.ERROR: UnexpectedValueException: Invalid response received from Authorization Server. Expected JSON. in /var/www/web/vendor/league/oauth2-client/src/Provider/AbstractProvider.php:885

Stack trace:
#0 /var/www/web/vendor/league/oauth2-client/src/Provider/AbstractProvider.php(865): League\OAuth2\Client\Provider\AbstractProvider->fetchResourceOwnerDetails()
#1 /var/www/web/vendor/fof/passport/src/Controllers/PassportController.php(96): League\OAuth2\Client\Provider\AbstractProvider->getResourceOwner()
#2 /var/www/web/vendor/flarum/core/src/Http/RouteHandlerFactory.php(41): FoF\Passport\Controllers\PassportController->handle()
#3 /var/www/web/vendor/flarum/core/src/Http/Middleware/ExecuteRoute.php(27): Flarum\Http\RouteHandlerFactory->Flarum\Http\{closure}()
#4 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ExecuteRoute->process()
#5 /var/www/web/vendor/flarum/core/src/Http/Middleware/ContentTypeOptionsHeader.php(21): Laminas\Stratigility\Next->handle()
#6 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ContentTypeOptionsHeader->process()
#7 /var/www/web/vendor/flarum/core/src/Http/Middleware/ReferrerPolicyHeader.php(30): Laminas\Stratigility\Next->handle()
#8 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ReferrerPolicyHeader->process()
#9 /var/www/web/vendor/flarum/core/src/Http/Middleware/FlarumPromotionHeader.php(30): Laminas\Stratigility\Next->handle()
#10 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\FlarumPromotionHeader->process()
#11 /var/www/web/vendor/flarum/core/src/Http/Middleware/ShareErrorsFromSession.php(57): Laminas\Stratigility\Next->handle()
#12 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ShareErrorsFromSession->process()
#13 /var/www/web/vendor/flarum/core/src/Http/Middleware/CheckCsrfToken.php(36): Laminas\Stratigility\Next->handle()
#14 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\CheckCsrfToken->process()
#15 /var/www/web/vendor/flarum/core/src/Http/Middleware/ResolveRoute.php(69): Laminas\Stratigility\Next->handle()
#16 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ResolveRoute->process()
#17 /var/www/web/vendor/flarum/core/src/Http/Middleware/SetLocale.php(51): Laminas\Stratigility\Next->handle()
#18 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\SetLocale->process()
#19 /var/www/web/vendor/flarum/core/src/Http/Middleware/AuthenticateWithSession.php(31): Laminas\Stratigility\Next->handle()
#20 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\AuthenticateWithSession->process()
#21 /var/www/web/vendor/flarum/core/src/Http/Middleware/RememberFromCookie.php(52): Laminas\Stratigility\Next->handle()
#22 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\RememberFromCookie->process()
#23 /var/www/web/vendor/flarum/core/src/Http/Middleware/StartSession.php(61): Laminas\Stratigility\Next->handle()
#24 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\StartSession->process()
#25 /var/www/web/vendor/flarum/core/src/Http/Middleware/CollectGarbage.php(46): Laminas\Stratigility\Next->handle()
#26 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\CollectGarbage->process()
#27 /var/www/web/vendor/flarum/core/src/Http/Middleware/ParseJsonBody.php(28): Laminas\Stratigility\Next->handle()
#28 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ParseJsonBody->process()
#29 /var/www/web/vendor/flarum/core/src/Http/Middleware/HandleErrors.php(57): Laminas\Stratigility\Next->handle()
#30 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\HandleErrors->process()
#31 /var/www/web/vendor/flarum/core/src/Http/Middleware/InjectActorReference.php(25): Laminas\Stratigility\Next->handle()
#32 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\InjectActorReference->process()
#33 /var/www/web/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(75): Laminas\Stratigility\Next->handle()
#34 /var/www/web/vendor/middlewares/request-handler/src/RequestHandler.php(84): Laminas\Stratigility\MiddlewarePipe->process()
#35 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Middlewares\RequestHandler->process()
#36 /var/www/web/vendor/middlewares/base-path-router/src/BasePathRouter.php(99): Laminas\Stratigility\Next->handle()
#37 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Middlewares\BasePathRouter->process()
#38 /var/www/web/vendor/laminas/laminas-stratigility/src/Middleware/OriginalMessages.php(36): Laminas\Stratigility\Next->handle()
#39 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Laminas\Stratigility\Middleware\OriginalMessages->process()
#40 /var/www/web/vendor/middlewares/base-path/src/BasePath.php(73): Laminas\Stratigility\Next->handle()
#41 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Middlewares\BasePath->process()
#42 /var/www/web/vendor/flarum/core/src/Http/Middleware/ProcessIp.php(24): Laminas\Stratigility\Next->handle()
#43 /var/www/web/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ProcessIp->process()
#44 /var/www/web/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(75): Laminas\Stratigility\Next->handle()
#45 /var/www/web/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(64): Laminas\Stratigility\MiddlewarePipe->process()
#46 /var/www/web/vendor/laminas/laminas-httphandlerrunner/src/RequestHandlerRunner.php(73): Laminas\Stratigility\MiddlewarePipe->handle()
#47 /var/www/web/vendor/flarum/core/src/Http/Server.php(45): Laminas\HttpHandlerRunner\RequestHandlerRunner->run()
#48 /var/www/web/public/index.php(26): Flarum\Http\Server->listen()
#49 {main}

The process seems straightforward at first but it is unclear really. Does Passport require an auth scaffolding ? Initially it complained the "login" route didn't exist. I installed laravel/ui and now I see a small window where I can login, but the error appears after I try to login.

Enabling debug shows the stack trace in Ignition in said small login window.

They are both installed on the same server and can reach each other.

nxmndr avatar Feb 15 '24 15:02 nxmndr

Do I have to install Flarum on the Passport side too ? So far I only see the user created in Passport, but they don't appear in the Flarum users. How do you handle user-specific permissions or other interactions ? Eg. how do I make a Passport-authenticated user mod or admin, or PM them ?

So many questions... I hoped OAuth2 handled these questions.

nxmndr avatar Feb 15 '24 15:02 nxmndr