Создание и управление удаленными сервисами для разных устройств

Я использую междоменный домен и использую php-сервер для получения информации о пользователе при входе в систему. На своем работающем веб-сайте я использую php-код и при входе пользователя я добавил этот код

session_start();

Затем просто объявите информацию о пользователе при успешном входе в систему следующим образом:

$_SESSION['user_id'] = $user['user_id'];
$_SESSION['user_email'] = $user['user_email'];
$_SESSION['user_name'] = $user['user_name'];

А потом я использую эту сессию $user['user_id']; в каждом запросе пользователя.

Как реализовать сеанс, когда пользователь вошел в гибридное приложение? Это то же самое, как работает мой работающий сайт? Мне просто нужно добавить сессионный код в запрос ajax? Любая идея?

1

Решение

Для этого вам нужен хост-сервер, который будет аутентифицировать и общаться с вашими устройствами. Общие протоколы будут использовать cURL а также JSON ответ:

УДАЛЕННОЕ УСТРОЙСТВО

1) Ваше устройство, я буду использовать другой сервер, потому что это легко, установит соединение с помощью cURL:

function cURL($variables = false)
{
$url = "http://www.example.com/";
$query = (!empty($variables))? '?'.http_build_query($variables) : '';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url.$query);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if(!empty($response))
$data = json_decode($response,true);
curl_close($ch);
return $data;
}

$login = cURL(array(
'service'=>'login',
'apikey'=>123123,
'username'=>'whatever',
'password'=>'whatever')
);

print_r($login);

API ХОСТ-СЕРВЕР

2) Ваш сервер будет прислушиваться к услугам. я использую $_GET но $_POST лучше:

if(!empty($_GET['service'])) {
switch($_GET['service']) {
case('login'):
logInUser($_GET);
}
}

logInUser() Функция будет просто делать обычную функцию входа в систему, за исключением того, что она установит timestamp, token, apikey, а также username в базе данных и вернуть это через JSON в случае успеха:

//...authentication code here...//
if($valid) {
// However you want to make a token
$token = md5($usename.mt_rand(1000000,9999999).time());
// Do code here to save the username, token, apikey, timestamp into database

// This will then echo back the token on success to the device
die(json_encode(array('token'=>$token,'success'=>true)));
}
else {
die(json_encode(array('token'=>'','success'=>'bad username/password')));
}

После этого устройство перезванивает на хост с токеном в строке запроса и apikey. Он также включает службу и любые переменные, которые требуются службе для отправки данных обратно на устройство. Каждое попадание на сервер приводит к тому, что сервер ищет apikey, затем service, а затем, если service не login, потребует токен. Он будет запрашивать базу данных и проверять, что все эти вещи в базе данных действительны. Если токен существует, а временная метка достаточно свежая (для нее можно указать время истечения), служба запускается. После запуска службы (или до ее завершения) timestamp значение токена обновляется до текущего времени.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]