Beispiel #1
0
 function logout(&$args)
 {
     $args->retval = false;
     error_log('log out requested');
     \Clef\Clef::initialize(AUTH_APPID, AUTH_SECRET);
     if (isset($_POST['logout_token'])) {
         try {
             $id = \Clef\Clef::get_logout_information($_POST['logout_token']);
             $user =& $this->_find_user($id);
             if ($user !== NULL) {
                 $user['logged_out_at'] = time();
                 /* updated model so save */
                 // XXX: this isn't multi user safe - we write in once hit
                 $this->_teapot->put_model('users', $this->_users);
                 error_log('logged out via Clef: ' . $user['id'] . ', ' . $user['email']);
             }
             $args->retval = true;
         } catch (Exception $e) {
             /* pass */
         }
     } else {
         /* not the result of a oauth logout - check session */
         if ($_SESSION[Auth::AUTHORIZED] === true) {
             $this->_user['logged_out_at'] = time();
             session_destroy();
             // this session is done, discard
             session_start();
             // new shiny session
             $this->_clear_session();
             /* updated model so save */
             // XXX: this isn't multi user safe - we write in once hit
             $this->_teapot->put_model('users', $this->_users);
             $args->retval = true;
             error_log('logged out: ' . $this->_user['id'] . ', ' . $this->_user['email']);
         }
     }
 }
Beispiel #2
0
<?php

require 'config.php';
require_once 'vendor/autoload.php';
if (isset($_POST['logout_token'])) {
    \Clef\Clef::initialize(APP_ID, APP_SECRET);
    try {
        $clef_id = \Clef\Clef::get_logout_information($_POST["logout_token"]);
        require 'mysql.php';
        update_logged_out_at($clef_id, time(), $mysql);
        die(json_encode(array('success' => true)));
    } catch (Exception $e) {
        die(json_encode(array('error' => $e->getMessage())));
    }
}