<?php

defined('ALT_PATH') or exit('No direct script access allowed');
// get from previous token
$token = System_Auth::get_token($_REQUEST['token']);
// validate token and get userdata
$userdata = System_Auth::get_user_data($token, true);
// get from session
$dbo = new System_Session();
$res = $dbo->get(array('where' => 'userid = ' . $dbo->quote($userdata['userid']) . ' and token like ' . $dbo->quote($token)), true);
// token already logout
if (count($res) != 1) {
    throw new Alt_Exception('Token already logged out!');
}
// try to force logout
try {
    include 'logout.php';
} catch (Exception $e) {
}
// generate new token
$token = System_Auth::generate_token($userdata);
System_Auth::save_token($token);
// save to session
$session = new System_Session();
$session->insert(array('userid' => $userdata['userid'], 'token' => $token));
return $token;