Сессии в рестлете? - PullRequest
       15

Сессии в рестлете?

1 голос
/ 16 апреля 2011

Я только что реализовал свое первое приложение Restlet (наконец-то:]), и теперь у меня большой вопрос.Я создал очень простой ресурс с именем LoginResource, который позволяет выполнять операции POST и GET, чтобы пользователи могли войти в систему и проверить, вошли ли они в систему соответственно.Теперь, когда я реализовал это, и я могу на самом деле заставить клиента вызвать сервер, «войти» и посмотреть результат, как я могу фактически отслеживать, вошел ли кто-то в систему или нет?

Моему приложению необходимо следующее:

  1. Мне нужен способ, чтобы клиент изначально входил в систему и мог видеть, вошли ли они через ресурс.
  2. Мне нужно предоставить «защищенный» доступ к списку объектов через другой ресурс.Это довольно просто, но это зависит от того, могу ли я контролировать доступ, что на данный момент я не могу сделать, потому что у меня нет никакого активированного сеанса.

Есть липростой способ разрешить мне включить сеансы и держать пользователей вошли в систему на некоторое время?Если бы это был PHP, это был бы мой код:

// login.php: login code
$username = $_POST['username'];
$password = $_POST['password'];

if (validate($username, $password)) {
    session_start();
    $_SESSION['is_logged_in'] = "yarp";
    echo get_login_success();
} else {
    echo get_login_failure();
}

// list.php: display list of objects
if (isset($_SESSION['is_logged_in']))
    echo get_object_list();
else
    echo get_security_error();

Я не хочу возвращать все это обратно в PHP, но эй, это делает для быстрого псевдокода.

1 Ответ

3 голосов
/ 20 апреля 2011

Посмотрите на HTTP Basic, HTTP Digest и HTTP OAuth-аутентификации (все поддерживаются Restlet).

Для некоторых клиентов, таких как браузеры, аутентификация на основе файлов cookie все еще используется в REST, но без серверной сессии.

Проверьте эту ссылку: http://restlet.tigris.org/issues/show_bug.cgi?id=605

...