Hallo,
Ich versuche aktuell über die API eine VNC Konsole zu öffnen.
Ausgabe:
Wenn ich das dann in ein iFrame einbette bekomme ich leider die Fehlermeldung 401 No Ticket.
Hat jemand eine Idee was ich falsch mache?
Danke!
Ich versuche aktuell über die API eine VNC Konsole zu öffnen.
PHP:
public function getTicket()
{
$response = Http::asForm()->post('https://' . $this->server->hostname . ':8006/api2/json/access/ticket', [
'username' => 'root',
'password' => 'meinpasswort',
'realm' => 'pam',
]);
return json_decode($response)?->data?->ticket;
}
public function getVncConsole()
{
$ticket = $this->getTicket();
$config = json_decode(Http::withToken($this->apikey)->asForm()->post('https://' . $this->server->hostname . ':8006/api2/json/nodes/' . $this->server->node . '/qemu/' . $this->node->vm_id . '/vncproxy', [
'websocket' => 1,
]));
$websocket = json_decode(Http::withToken($this->apikey)->asForm()->get('https://' . $this->server->hostname . ':8006/api2/json/nodes/' . $this->server->node . '/qemu/' . $this->node->vm_id . '/vncwebsocket', [
'vncticket' => $ticket,
'port' => $config->data->port
]));
setcookie('PVEAuthCookie', $ticket, 0, '/', 'meinedomain.com', false);
$src_href = 'https://' . $this->server->hostname . ':8006/?console=kvm&novnc=1&node=' . $this->server->node . '&resize=1&vmid=' . $this->node->vm_id . '&path=api2/json/nodes/' . $this->server->node . '/qemu/' . $this->node->vm_id . '/vncwebsocket/port/' . $config->data->port . '/vncticket/' . $ticket;
ray($src_href);
return '<iframe src="' . $src_href . '" frameborder="0" scrolling="no" class="w-full rounded-lg shadow" width="800px" height="600px"></iframe>';
}
Ausgabe:
Code:
https://meinedomain.com:8006/?console=kvm&novnc=1&node=dev1&resize=1&vmid=112&path=api2/json/nodes/dev1/qemu/112/vncwebsocket/port/5900/vncticket/PVE:root@pam:62F3DAC2::HXKXFEd4wViw2iBGXECXSe7Z71/I4wq0qywjeUwE/Ew7+VHTiMzqP4mvPrzCHRyfC6AhHTqBbKPYzCApNYP9/fev0Ha9EKoTGqyQFwvzav5GaEWegH7sSpO+C13vZ6lAY4Wr0dNxytuCeE1ryMwJ6wd4+zcUPAubQIbAgl3iDCtSDNQaWtX4Uo79ZcFe7Zf52KP+Y3wbdjyqNYOmPXjiMDsYNb8PO7bxARTixWqkHCF3mSry69lKT91PhZxEw5vmnmZlVA/sAVeKQQmzKO/yYZuwjzDYRaiqKz4ALga2Sdkd6WLau07Sxe2VCprJ5IygCwTsHD6cjwId5RRuiMDt/g==
Wenn ich das dann in ein iFrame einbette bekomme ich leider die Fehlermeldung 401 No Ticket.
Hat jemand eine Idee was ich falsch mache?
Danke!