Zitat von coliflower
Beitrag anzeigen
ich habe mal meinen redirect_uri Skript unten um folgende Codezeilen ergänzt, leider wird der EXEC Teil nicht getriggert ...
PHP-Code:
//
if (!is_link('/usr/local/edomi/www/visu/hc_code.php'))
{
symlink('/usr/local/edomi/www/data/liveproject/lbs/EXE19000070.php', '/usr/local/edomi/www/visu/hc_code.php');
}
redirect_uri script ...
HTML-Code:
<!DOCTYPE html> <html lang="de"> <head> <title>HC-REDIRECT</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <header> <h2>Home-Connect</h2> </header> <?php $state_sent = '9pfQGTQlhsr7v_3BcP7fQZWv64WsEOv8yDdrRvEWIjgLS9Oy_zHDdQmzKA71kY4f'; $state_get = $_GET['state']; if (isset($state_sent) && ($state_sent == $_GET['state'])) { if (isset($_GET['error'])) { echo '<h1>Some ERROR occured, please check the description ...</h1>'; if ($_GET['error'] === 'invalid_request') { $error = $_GET['error']; $error_description = $_GET['error_description']; } elseif ($_GET['error'] === 'unsupported_response_type') { $error = $_GET['error']; $error_description = $_GET['error_description']; } elseif ($_GET['error'] === 'unauthorized_client') { $error = $_GET['error']; $error_description = $_GET['error_description']; } elseif ($_GET['error'] === 'invalid_scope') { $error = $_GET['error']; $error_description = $_GET['error_description']; } elseif ($_GET['error'] === 'access_denied') { $error = $_GET['error']; $error_description = $_GET['error_description']; } else { echo 'some not documented error occured'."<br />\n"; $error = $_GET['error']; $error_description = $_GET['error_description']; } echo 'error = '.$error."<br />\n"; echo 'error_description = '.$error_description."<br />\n"; echo 'state_sent = '.$state_sent."<br />\n"; echo 'state_get = '.$state_get; echo 'state = OK'; } else { $code = $_GET['code']; $grant_type = $_GET['grant_type']; $remote = $_SERVER['REMOTE_ADDR']; $name = $_SERVER['SERVER_NAME']; $self = $_SERVER['PHP_SELF']; $host = $_SERVER['HTTP_HOST']; $json = '/usr/local/edomi/www/visu/hc_code.json'; $tokens = array('code' => $code); echo '<h1>state_SENT is equil state_GET == OK</h1>'; echo '<h2>You can close the tab and you need to trigger your LBS within 10 minutes</h2>'; echo 'state_SENT == '.$state_sent."<br />\n"; echo 'state_GET == '.$state_get."<br />\n"; echo 'code == '.$code."<br />\n"; echo 'grant_type == '.$grant_type."<br />\n"; echo 'remote server == '.$remote."<br />\n"; echo 'edomi server name == '.$name."<br />\n"; echo 'edomi server host == '.$host."<br />\n"; echo 'edomi server self == '.$self."<br />\n"; if (file_exists($json)) unlink($json); file_put_contents($json, json_encode($tokens)); unset($code, $grant_type, $remote, $name, $self, $host, $json, $tokens); if (!is_link('/usr/local/edomi/www/visu/hc_code.php')) { symlink('/usr/local/edomi/www/data/liveproject/lbs/EXE19000070.php', '/usr/local/edomi/www/visu/hc_code.php'); } } } else { echo '<h1>state_SENT is not equil state_GET == NOK</h1>'; echo '<h2>state_SENT need to be equil to state_GET otherwise possibility of cross-site request forgery</h2>'; echo 'state_SENT == '.$state_sent."<br />\n"; echo 'state_GET == '.$state_get."<br />\n"; } ?> <footer> <p>© coliflower</p> </footer> </body> </html>
Hier noch der Teil aus dem EXEC Teil des LBSen ...
Dass der Teil nicht getriggert wird gehe ich davon aus, weil a.) keine Einträge in das 70er Log geschrieben werden und b.) weil am Ende die JSON mit den Tokens nicht geschrieben wird.
PHP-Code:
if (isset($_GET['code']))
{
LB_LBSID_DEBUG($id, $remark.'EXEC (symlink) ............... script triggered', 6, $log, $ll, false);
unset($code, $trigger);
$code = $_GET['code'];
logic_setVar($id, 1, $code);
LB_LBSID_DEBUG($id, $remark.'EXEC ($code) ................. '.serialize($code), 6, $log, $ll, false);
$config['code'] = $code;
LB_LBSID_DEBUG($id, $remark.'EXEC ($config) ............... '.serialize($config), 6, $log, $ll, false);
$client = new HomeConnect\Clients\HcClient($config);
LB_LBSID_DEBUG($id, $remark.'EXEC ($client) ............... '.serialize($client), 6, $log, $ll, false);
$tokens = $client->getAccessTokenFromAuthorizationCode($code);
LB_LBSID_DEBUG($id, $remark.'EXEC ($tokens) ............... '.serialize($tokens), 6, $log, $ll, false);
file_put_contents($pfad_hc_tokens_json, json_encode($tokens));
LB_LBSID_DEBUG($id, $remark.'EXEC ($tokens) ............... new tokens were stored in '.$pfad_hc_tokens_json, 6, $log, $ll, false);
LB_LBSID_DEBUG($id, $remark.'EXEC (SSE) ................... now you can start SSE (trigger = 1)', 6, $log, $ll, false);
unset($tokens, $code, $config, $client);
die();
}
if ($trigger = 1) ...
elseif (trigger = 9) ...
else ...
Für dein Unterstützung wäre ich dir sehr dankbar :-)
Kommentar