Войти через единый вход (CAS)? - PullRequest
1 голос
/ 16 апреля 2011

Я настраиваю Drupal для входа в систему с помощью CAS.

После входа в CAS, когда я захожу на первую страницу веб-сайта drupal, я хочу войти в систему, не нажимая на какую-либо ссылку (Вход через единый вход (CAS))

есть ли какая-либо опция для этого параметра Drupal CAS?

Ответы [ 3 ]

0 голосов
/ 03 марта 2012

Использовать эту библиотеку: https://wiki.jasig.org/display/CASC/phpCAS

И на первой странице вашего сайта в Drupal создайте клиент и выполните аутентификацию:

phpCAS::client(CAS_VERSION_2_0, $cas_host, $cas_port, $cas_context);
phpCAS::setNoCasServerValidation();
phpCAS::forceAuthentication();

Последний вызов перенаправит пользователя в CAS. Если он вошел в систему, то пользователь будет отправлен обратно на первую страницу вашего сайта Drupal, и он будет авторизован. Это происходит мгновенно. Пользователь даже не увидит, что он зашел на страницу CAS.

НТН

0 голосов
/ 02 апреля 2012

Для этого есть опция.

Перейдите на страницу конфигурации модуля CAS (/admin/config/people/cas).

В поле «Перенаправление набора полей» установите этот флажок:

Обратитесь к серверу CAS, чтобы убедиться, что пользователь уже вошел в систему?

0 голосов
/ 17 апреля 2011

Я не знаком с CAS и не знаю, какие переменные у вас есть, чтобы сказать, должен ли пользователь войти в систему или нет, но вы должны быть в состоянии достичь этого с помощью пользовательского модуля в hook_init ()и user_external_login_register () http://api.drupal.org/api/drupal/modules--user--user.module/function/user_external_login_register/7

Код Psuedo:

<?php
/**
 * Implements hook_init().
 */
function mymodule_init() {
  // only check if user is not logged in
  if (user_is_anonymous()) {
    // add your condition to test if user is valid
    if ( <condition to check if user should be logged in> ) {
      // programmatically login user by name
      user_external_login_register('<username>', 'mymodule');
    }
  }
}
...