No era posible analizar tu llave cuando intentaba probar Oauth en el cartero

Estaba trabajando en Oauth Pasaporte Laravel. Estaba funcionando bien en mi computadora anterior, pero tenía que cambiar máquinas. Mi nueva máquina tiene PHP 8, mi proyecto Laravel es de versión 7.30.0, y mi versión lcobucci/jwt es 3.3.3. Cuando intento registrar la ruta del cartero obtengo el siguiente mensaje de error.

InvalidArgumentException: It was not possible to parse your key, reason:  in file
C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\lcobucci\jwt\src\Signer\OpenSSL.php
on line 90

    #0 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\lcobucci\jwt\src\Signer\OpenSSL.php(47):
Lcobucci\JWT\Signer\OpenSSL->validateKey(Object(OpenSSLAsymmetricKey))
    #1 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\lcobucci\jwt\src\Signer\OpenSSL.php(21):
Lcobucci\JWT\Signer\OpenSSL->getPrivateKey('-----BEGIN RSA ...',
NULL)
    #2 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\lcobucci\jwt\src\Signer\BaseSigner.php(36):
Lcobucci\JWT\Signer\OpenSSL->createHash('eyJ0eXAiOiJKV1Q...',
Object(Lcobucci\JWT\Signer\Key))
    #3 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\lcobucci\jwt\src\Builder.php(470):
Lcobucci\JWT\Signer\BaseSigner->sign('eyJ0eXAiOiJKV1Q...',
Object(Lcobucci\JWT\Signer\Key))
    #4 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\lcobucci\jwt\src\Builder.php(450):
Lcobucci\JWT\Builder->createSignature(Array,
Object(Lcobucci\JWT\Signer\Rsa\Sha256),
Object(Lcobucci\JWT\Signer\Key))
    #5 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\league\oauth2-server\src\Entities\Traits\AccessTokenTrait.php(41):
Lcobucci\JWT\Builder->getToken()
    #6 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\league\oauth2-server\src\ResponseTypes\BearerTokenResponse.php(28):
Laravel\Passport\Bridge\AccessToken->convertToJWT(Object(League\OAuth2\Server\CryptKey))
    #7 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\league\oauth2-server\src\AuthorizationServer.php(202):
League\OAuth2\Server\ResponseTypes\BearerTokenResponse->generateHttpResponse(Object(Zend\Diactoros\Response))
    #8 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\passport\src\PersonalAccessTokenFactory.php(114):
League\OAuth2\Server\AuthorizationServer->respondToAccessTokenRequest(Object(Zend\Diactoros\ServerRequest),
Object(Zend\Diactoros\Response))
    #9 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\passport\src\PersonalAccessTokenFactory.php(71):
Laravel\Passport\PersonalAccessTokenFactory->dispatchRequestToAuthorizationServer(Object(Zend\Diactoros\ServerRequest))
    #10 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\passport\src\HasApiTokens.php(67):
Laravel\Passport\PersonalAccessTokenFactory->make(32, 'MyApp',
Array)
    #11 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\app\Http\Controllers\API\CCVTController.php(48):
App\CCVTPassport->createToken('MyApp')
    #12 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Routing\Controller.php(54):
App\Http\Controllers\API\CCVTController->register(Object(Illuminate\Http\Request))
    #13 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php(45):
Illuminate\Routing\Controller->callAction('register', Array)
    #14 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Routing\Route.php(239):
Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route),
Object(App\Http\Controllers\API\CCVTController), 'register')
    #15 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Routing\Route.php(196):
Illuminate\Routing\Route->runController()
    #16 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Routing\Router.php(685):
Illuminate\Routing\Route->run()
    #17 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(128):
Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
    #18 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Routing\Middleware\SubstituteBindings.php(41):
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #19 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167):
Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request),
Object(Closure))
    #20 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Routing\Middleware\ThrottleRequests.php(59):
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #21 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167):
Illuminate\Routing\Middleware\ThrottleRequests->handle(Object(Illuminate\Http\Request),
Object(Closure), 60, '1')
    #22 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103):
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #23 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Routing\Router.php(687):
Illuminate\Pipeline\Pipeline->then(Object(Closure))
    #24 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Routing\Router.php(662):
Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route),
Object(Illuminate\Http\Request))
    #25 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Routing\Router.php(628):
Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request),
Object(Illuminate\Routing\Route))
    #26 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Routing\Router.php(617):
Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
    #27 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(165):
Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
    #28 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(128):
Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
    #29 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21):
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #30 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167):
Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request),
Object(Closure))
    #31 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21):
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #32 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167):
Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request),
Object(Closure))
    #33 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php(27):
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #34 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167):
Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request),
Object(Closure))
    #35 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php(63):
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #36 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167):
Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request),
Object(Closure))
    #37 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\fruitcake\laravel-cors\src\HandleCors.php(37):
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #38 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167):
Fruitcake\Cors\HandleCors->handle(Object(Illuminate\Http\Request),
Object(Closure))
    #39 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\fideloper\proxy\src\TrustProxies.php(57):
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #40 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167):
Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request),
Object(Closure))
    #41 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103):
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #42 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(140):
Illuminate\Pipeline\Pipeline->then(Object(Closure))
    #43 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(109):
Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
    #44 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\public\index.php(55):
Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
    #45 C:\xampp\htdocs\ccvtlicensing\ccvt-licensing\server.php(21): require_once('C:\\xampp\\htdocs...')
    #46 {main}

He intentado rebajar y mejorar lcobucci/jwt, y también he corrido php artisan passport:install y composer update --ignore-platform-reqs

Pregunta hecha hace 3 años, 4 meses, 29 días - Por codealchemy


3 Respuestas:

  • Bajando de la versión 8 a la versión 7.4 resolvió mi problema

    Respondida el Dec 18, 2020 a las 10:30 - por bytebison

    Votos positivos: 0 | Votos negativos: 0

  • El error que estás viendo se debe a un problema al intentar analizar la clave de tu proyecto al utilizar Oauth con Laravel Passport. El mensaje de error apunta a un problema al intentar validar la clave en el archivo OpenSSL.php.

    Para resolver este problema, te recomendaría realizar los siguientes pasos:

    • Asegúrate de que la clave que estás utilizando sea válida y esté en el formato correcto. Verifica que la clave privada que estás utilizando esté en el formato adecuado, por ejemplo, comenzando con `-----BEGIN RSA PRIVATE KEY-----`.
    • Intenta regenerar las claves de Passport. Puedes hacerlo ejecutando el comando `php artisan passport:install`. Este comando generará nuevas claves y tokens de acceso que podrían solucionar el problema.
    • Verifica las configuraciones de tu entorno de desarrollo. Asegúrate de tener todas las dependencias actualizadas y compatibles con PHP 8 y Laravel 7.
    • Si has intentado actualizar el paquete `lcobucci/jwt` pero aún persiste el error, podrías intentar remover completamente el paquete y volver a instalarlo. Puedes hacerlo eliminando la carpeta `vendor` y el archivo `composer.lock`, y luego ejecutando `composer install` nuevamente.
    • También puedes intentar reiniciar tu servidor local después de realizar los cambios anteriores para asegurarte de que todo se refresque correctamente.

    Si después de seguir estos pasos el problema persiste, te recomendaría revisar detenidamente la configuración y las claves utilizadas en tu proyecto para identificar cualquier posible error en la implementación de Oauth con Laravel Passport.

    Respondida el Dec 19, 2020 a las 10:26 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Soluciones posibles:

    Verifica tu clave privada:

    Asegúrate de que la clave privada que estás utilizando en tu código de Passport es válida y está en el formato correcto. Debe ser una clave privada RSA en formato PEM.

    Actualiza tu versión de Laravel:

    La versión 7.30.0 de Laravel es bastante antigua. Se recomienda actualizar a la última versión estable de Laravel, que actualmente es 9.38..

    Actualiza lcobucci/jwt a 4.5.0 o superior:

    La versión 3.3.3 de lcobucci/jwt es obsoleta. Actualiza a la versión 4.5.0 o superior, que es compatible con PHP 8.

    Comprueba los permisos de archivo:

    Asegúrate de que el archivo que contiene tu clave privada tenga los permisos correctos. El servidor web debe poder leerlo.

    Depura el error:

    Agrega una declaración try...catch a tu código para capturar la excepción. El mensaje de excepción puede proporcionar más información sobre la causa raíz del problema.

    Comandos adicionales que puedes intentar:

    php artisan config:cache php artisan cache:clear

    Recursos adicionales:

    Documentación de Laravel Passport Documentación de lcobucci/jwt Problemas conocidos con lcobucci/jwt y PHP 8

    Nota:* Si ninguna de estas soluciones funciona, proporciona más detalles sobre tu configuración y el error exacto que estás encontrando.

    Respondida el Dec 19, 2020 a las 10:31 - por Gemini

    Votos positivos: 0 | Votos negativos: 0