Php ajax请求后在服务器端应用程序上保持会话-跨域
我使用Php ajax请求后在服务器端应用程序上保持会话-跨域,php,ajax,cordova,session,cross-domain,Php,Ajax,Cordova,Session,Cross Domain,我使用Slim框架在PHP中构建了一个服务器端web应用程序。此应用程序只是向跨域上的其他应用程序提供web服务。我正在使用AJAX请求创建登录 另一个域的客户端应用程序已经内置了ReactJS实际上我正在构建Phonegap应用程序。我从我的客户端应用程序发送登录请求,以使用AJAX检查和匹配凭据,如果在JSON数组中匹配其返回的用户数据。这就是我现在的工作方式: 问题:成功登录后,我还试图在服务器端应用程序中存储或创建会话,以便在用户登录时验证其他请求。我也在存储cookies,但也希望存储
Slim框架在PHP
中构建了一个服务器端web应用程序。此应用程序只是向跨域上的其他应用程序提供web服务。我正在使用AJAX
请求创建登录
另一个域的客户端
应用程序已经内置了ReactJS
实际上我正在构建Phonegap
应用程序。我从我的客户端
应用程序发送登录请求,以使用AJAX
检查和匹配凭据,如果在JSON
数组中匹配其返回的用户数据。这就是我现在的工作方式:
问题:成功登录后,我还试图在服务器端应用程序中存储或创建会话,以便在用户登录时验证其他请求。我也在存储cookies,但也希望存储会话以进行一些安全的数据存储。但是会话不会根据AJAX
请求存储或创建
如何根据跨域的AJAX请求创建或存储会话
我的代码如下:
服务器端:
$app->get('/login/{username}/{password}', function (Request $request, Response $response) {
$username = $request->getAttribute('username');
$password = $request->getAttribute('password');
$user = $this->eloquent->table('u')
->select('*')
->where('username', $username)
->where('password', $password)->get();
$_SESSION['user_auth'] = 1;
$response->getBody()->write(json_encode($user));
return $response;
});
$.ajax({
url : config.remoteAddr + '/login/' + username + '/' + password,
type : 'get',
dataType : 'json',
async : false,
}).done(function(data){
if(data[0]){
alert('loggedin');
console.log(data);
cookie.set('auth', '1', {path : '/'});
cookie.set('userId', data[0].id , {path : '/'});
error = false;
}
}).fail(function(){
console.log('fail');
})
客户端:
$app->get('/login/{username}/{password}', function (Request $request, Response $response) {
$username = $request->getAttribute('username');
$password = $request->getAttribute('password');
$user = $this->eloquent->table('u')
->select('*')
->where('username', $username)
->where('password', $password)->get();
$_SESSION['user_auth'] = 1;
$response->getBody()->write(json_encode($user));
return $response;
});
$.ajax({
url : config.remoteAddr + '/login/' + username + '/' + password,
type : 'get',
dataType : 'json',
async : false,
}).done(function(data){
if(data[0]){
alert('loggedin');
console.log(data);
cookie.set('auth', '1', {path : '/'});
cookie.set('userId', data[0].id , {path : '/'});
error = false;
}
}).fail(function(){
console.log('fail');
})