WebsiteBaker Logo
  • *
  • Templates
  • Help
  • Add-ons
  • Download
  • Home
*
Welcome, Guest. Please login or register.

Login with username, password and session length
 

News


WebsiteBaker 2.13.6 is now available!


Will it continue with WB? It goes on! | Geht es mit WB weiter? Es geht weiter!
https://forum.websitebaker.org/index.php/topic,32340.msg226702.html#msg226702


The forum email address board@websitebaker.org is working again
https://forum.websitebaker.org/index.php/topic,32358.0.html


R.I.P Dietmar (luisehahne) and thank you for all your valuable work for WB
https://forum.websitebaker.org/index.php/topic,32355.0.html


* Support WebsiteBaker


  • Home
  • Help
  • Search
  • Login
  • Register

  • WebsiteBaker Community Forum »
  • WebsiteBaker Support (2.13.x) »
  • General Help & Support »
  • Hilfe & Support (deutsch) »
  • Logout mittels Curl POST-Request
  • Print
Pages: [1]   Go Down

Author Topic: Logout mittels Curl POST-Request  (Read 8400 times)

Offline markherrmann

  • Posts: 141
Logout mittels Curl POST-Request
« on: December 12, 2023, 07:08:52 PM »
Hi Leute,
zu Logout gibt's schon viele Posts zum Thema Redirect aber noch keinen für mein aktuelles Problem. Ich wollte mal fragen, ob schon jemand Erfahrung mit dem Thema Logout über CURL gesammelt hat.

Ich habe eine Php-Function, wenn ich die aufrufe dann wird abgemeldet (so die Theorie).
Warum? Ich möchte Usern die Möglichkeit geben Ihren Account zu löschen. Wie ich das bewerkstellige ist mir eigentlich klar (ich setze Sie in der Datenbank auf inaktiv) ... Möchte sie dann aber auch abmelden (ohne separaten Button).

Deswegen habe ich mir überlegt ich sende einen POST-Request an logout.php ... Das Ergebnis waren leider eine menge Fehlermeldungen aber kein Logout  :oops:

Meine Function für den Logout sieht wie folgt aus:

Code: [Select]
function userLogout() {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://xxxxxxxxxxxxxxxx/account/logout.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$post = array(
'redirect' => 'https://xxxxxxxxxxxxxxxxx/pages/home.php',
'page_id' => '2'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
}

vom Prinzip ist das wie der Logoutbutton <form...>...</form> im Template oder Droplet (ist das selbe Prinzip) ... und da funktioniert es einwandfrei. Nur eben ohne, dass ich Button drücken muss. Ich möchte nicht mittel JS den Request auslösen (weil JS ja auch aus sein kann)

Als Fehlermeldung bekomme ich zu sehen:
Code: [Select]
string(183) "There was an uncatched exception
md5(): Argument #1 ($string) must be of type string, array given
in line (173) of (/framework/Sessions/SameSiteSessionStarter.php):
"
Logged

Offline markherrmann

  • Posts: 141
Re: Logout mittels Curl POST-Request
« Reply #1 on: December 12, 2023, 07:37:43 PM »
Weiß nicht ob das Sicherheitstechnisc h beste Lösung ist aber ich machs erstmal wie folgt:

Code: [Select]
function logoutUserNew() {
$page_id = 2;
$redirect_url = 'https://xxxxxxxxxxxxxxx/pages/home.php';

$_SESSION['USER_ID'] = null;
$_SESSION['GROUPS_ID'] = null;
$_SESSION['USERNAME'] = null;
$_SESSION['PAGE_PERMISSIONS'] = null;
$_SESSION['SYSTEM_PERMISSIONS'] = null;
$_SESSION = [];

session_unset();
unset($_COOKIE[session_name()]);
session_destroy();

header('Location: '.WB_URL.'/index.php');
exit;
   
}

schreibt mir, wenn Ihr anderer Meinung seid.
Logged

Offline crnogorac081

  • Posts: 2161
  • Gender: Male
Re: Logout mittels Curl POST-Request
« Reply #2 on: December 13, 2023, 09:27:15 AM »
from where are you sending logout request when you use CURL , can you explain ?
Logged
Web developer

Offline markherrmann

  • Posts: 141
Re: Logout mittels Curl POST-Request
« Reply #3 on: December 13, 2023, 05:58:47 PM »
From Frontend...  :?
I create a seperate page (for users) there is a form, where users can press a button that calls my function like this...

Code: [Select]
$url_this = WB_URL.$_SERVER['PHP_SELF'];
$url_target = $url_this;    // sometimes i use different targets xml-export or pdf-export (for that this stupid additional var here dont need)
$sec_ftan = $wb->getFtan($wb->createFTAN());
$sec_recordid = $wb->getIdKey('record_id');
$form_name = 'form_'.PAGE_ID;
$msg_confirm = 'bla bla bla\n another bla bla bla';

$ui_start = '...';
$ui_start .= '<form id="'.$form_name.'" name="'.$form_name.'" action="'.$url_this.'" method="post" target="_self" onSubmit="return confirm(\''.$msg_confirm.'\')" />'."\n";
$ui_start .= '<input type="hidden" name="'.$sec_ftan['name'].'" value="'.$sec_ftan['value'].'" />'."\n";
$ui_start .= '<input type="hidden" name="record_id" value="'.$sec_recordid.'" />'."\n";
$ui_start .= '<input type="submit" value="zugang löschen" />'."\n";
$ui_start .= '</form>'."\n";

echo $ui_start;

if (!empty($_POST)) {
if ($wb->checkFtan()) {
if ($sql_result_deactivate) {
confirmMail(); // send mail to user that account is off
logoutUserNew(); // logout user
} else {
// fail msg (maybe)

} // end sql_result...
} // end checkFtan
} // end empty
Logged

Offline crnogorac081

  • Posts: 2161
  • Gender: Male
Re: Logout mittels Curl POST-Request
« Reply #4 on: December 14, 2023, 01:16:07 PM »
Is forum wb module or some external ? If it is external you cannot unset Sessions created by wb like that I think. Maybe you Can clear login cookie but pćcookie path must be correct
Logged
Web developer

Offline markherrmann

  • Posts: 141
Re: Logout mittels Curl POST-Request
« Reply #5 on: December 14, 2023, 05:15:06 PM »
Forum? or you mean form?
First... second method method in logoutUserNew() works fine...

Both functions logoutUserNew() and logoutUser() runs in section "code"... nothing external.
I used Curl in another case to create a request to send data to another site of me...

here i tried to use curl to init a post request to himself (like a request with form and button).
Logged

  • Print
Pages: [1]   Go Up
  • WebsiteBaker Community Forum »
  • WebsiteBaker Support (2.13.x) »
  • General Help & Support »
  • Hilfe & Support (deutsch) »
  • Logout mittels Curl POST-Request
 

  • SMF 2.0.19 | SMF © 2017, Simple Machines
  • XHTML
  • RSS
  • WAP2