通过单点登录(CAS)登录?

时间:2011-04-16 17:58:27

标签: drupal cas

我将Drupal配置为使用CAS登录。

在CAS登录后,当我访问drupal网站的第一页时,我想要登录而不点击任何链接(通过单点登录(CAS)登录)

是Drupal CAS设置的任何选项吗?

3 个答案:

答案 0 :(得分:0)

我不熟悉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');
    }
  }
}

答案 1 :(得分:0)

使用此库: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页面。

HTH

答案 2 :(得分:0)

有一个选项。

转到CAS模块的配置页面(/ admin / config / people / cas)。

在字段集重定向下,选中此复选框:

检查CAS服务器以查看用户是否已登录?