From 2d4346a3d6fcaa6e686fe2d99643a22ed5e1f6db Mon Sep 17 00:00:00 2001 From: Yvo Brevoort Date: Sat, 13 Dec 2025 12:12:14 +0100 Subject: [PATCH] add support for remote client document --- lib/ClientRegistration.php | 12 +++++++++++- lib/Routes/SolidIdp.php | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/ClientRegistration.php b/lib/ClientRegistration.php index 88d98a0..ddcf2bb 100644 --- a/lib/ClientRegistration.php +++ b/lib/ClientRegistration.php @@ -5,6 +5,10 @@ class ClientRegistration { public static function getRegistration($clientId) { + if (preg_match("/^http(s)?:/", $clientId)) { + return self::getRemoteRegistration($clientId); + } + Db::connect(); $query = Db::$pdo->prepare( 'SELECT clientData FROM clients WHERE clientId=:clientId' @@ -18,7 +22,13 @@ public static function getRegistration($clientId) { } return false; } - + + public static function getRemoteRegistration($url) { + $clientDocument = file_get_contents($url); + $clientRegistration = json_decode($clientDocument, true); + return $clientRegistration; + } + public static function saveClientRegistration($clientData) { Db::connect(); if (!isset($clientData['client_name'])) { diff --git a/lib/Routes/SolidIdp.php b/lib/Routes/SolidIdp.php index 4d15982..acc7f52 100644 --- a/lib/Routes/SolidIdp.php +++ b/lib/Routes/SolidIdp.php @@ -68,7 +68,7 @@ public static function respondToAuthorize() { $approval = true; } else { $clientRegistration = ClientRegistration::getRegistration($clientId); - if (in_array($clientRegistration['origin'], TRUSTED_APPS)) { + if (isset($clientRegistration['origin']) && in_array($clientRegistration['origin'], TRUSTED_APPS)) { $approval = true; } }