我在移动网站上工作。所有服务都将存储在远程主机上,因此我将以下标题发送回浏览器。
header('Access-Control-Allow-Credentials: true');
header("Access-Control-Allow-Headers: Authorization, Content-Type");
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('content-type: application/json; charset=utf-8;');
现在问题出现在我正在设置会话的登录页面上,一切正常。但是在第二次请求时没有会话。 我该如何处理这个问题。
编辑:
的login.php
<?php
require('includes/functions.php');
if (authenticate()) {
include('includes/headers.php');
$arr = array('status' => 'success');
echo json_encode($arr);
}
?>
users.php
<?php
include('includes/headers.php');
require('includes/functions.php');
if( isloggedin() ) {
$users = get_users();
$arr = array('status' => 'success', 'users' =>$users);
echo json_encode($arr);
}
?>
使用的功能
//AUTHENTICATE USER AND CREATE SESSION
function authenticate() {
connect();
global $pdo;
$stmt = $pdo->prepare('
SELECT *
FROM users
WHERE username = :username
LIMIT 1');
$stmt->execute( array( ':username' => $_POST['username'] ) );
$details = $stmt->fetch( PDO::FETCH_OBJ );
//echo $details->password;
//echo "<br />" . PassHash::hash($_POST['password']);
if($details) {
if (PassHash::check_password($details->password, $_POST['password'])) {
$ss = new SecureSession(); $ss->Open();
$_SESSION['isloggedin'] = TRUE;
return TRUE;
}
} else {
return FALSE;
}
}
//CHECK IF USER LOGGEDIN
function isloggedin() {
if( isset($_SESSION['isloggedin'])) {
return TRUE;
}
}