我使用PHP
在Slim Framework
内置了一个服务器端Web应用程序。此应用程序仅向跨域上的另一个提供Web服务。我正在使用AJAX
请求创建登录信息。
作为另一个域的client-side
应用程序已内置ReactJS
,实际上我正在构建Phonegap
应用程序。我从client-side
应用程序发送登录请求,以使用AJAX
检查和匹配凭据,如果匹配其JSON
数组中的返回用户数据。这就是我现在的工作方式:
问题:成功登录后,我还尝试在我的server-side
应用程序中存储或创建会话,以便在用户登录时验证其他一些请求。我也在存储cookie ,但也想存储一些安全数据存储的会话。但会话不会在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');
})