diff --git a/app/Http/Controllers/TokenEndpointController.php b/app/Http/Controllers/TokenEndpointController.php index f0c9ea13..e348738c 100644 --- a/app/Http/Controllers/TokenEndpointController.php +++ b/app/Http/Controllers/TokenEndpointController.php @@ -10,6 +10,7 @@ use GuzzleHttp\Exception\BadResponseException; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use IndieAuth\Client; +use JsonException; class TokenEndpointController extends Controller { @@ -68,13 +69,13 @@ class TokenEndpointController extends Controller $scope = $auth['scope'] ?? ''; $tokenData = [ - 'me' => $request->input('me'), + 'me' => config('app.url'), 'client_id' => $request->input('client_id'), 'scope' => $scope, ]; $token = $this->tokenService->getNewToken($tokenData); $content = [ - 'me' => $request->input('me'), + 'me' => config('app.url'), 'scope' => $scope, 'access_token' => $token, ]; @@ -106,7 +107,7 @@ class TokenEndpointController extends Controller try { $authData = json_decode((string) $response->getBody(), true, 512, JSON_THROW_ON_ERROR); - } catch (\JsonException) { + } catch (JsonException) { return null; } diff --git a/tests/Feature/TokenEndpointTest.php b/tests/Feature/TokenEndpointTest.php index 37e4dbcd..1a6d05c0 100644 --- a/tests/Feature/TokenEndpointTest.php +++ b/tests/Feature/TokenEndpointTest.php @@ -31,16 +31,15 @@ class TokenEndpointTest extends TestCase $mockGuzzleClient = new Client(['handler' => $handlerStack]); $this->app->instance(Client::class, $mockGuzzleClient); $response = $this->post('/api/token', [ - 'me' => config('app.url'), - 'code' => 'abc123', - 'redirect_uri' => config('app.url') . '/indieauth-callback', - 'client_id' => config('app.url') . '/micropub-client', - 'state' => random_int(1000, 10000), - ]); - $response->assertJson([ - 'me' => config('app.url'), - 'scope' => 'create update', + 'grant_type' => 'authorization_code', + 'code' => '1234567890', + 'redirect_uri' => 'https://example.com/auth/callback', + 'client_id' => 'https://example.com', + 'code_verifier' => '1234567890', ]); + + $this->assertSame(config('app.url'), $response->json('me')); + $this->assertNotEmpty($response->json('access_token')); } /**