Как заставить openid войти от одного провайдера в Drupal 7?

Итак, с текущим модулем OpenID для Drupal 7 необходимо щелкнуть по «OpenID» на главной странице, после чего пользователь вводит URL-адрес поставщика OpenID для связи. Предполагая, что я точно знаю, какой провайдер я хочу использовать (мой университет), я могу сделать так, чтобы, как только пользователь посещает домашнюю страницу или любую часть моего сайта drupal, первое, что он делает, конкретный URL-адрес провайдера, прежде чем он даже покажет страницу?

Причина в том, что я хочу, чтобы люди в университетской сети могли заходить на сайт и автоматически видеть, кто они, без того, чтобы они выполняли этот дополнительный шаг, нажав кнопку «openid». Очень похоже на одноразовое решение.

6 голосов | спросил Tinera 3 J000000Tuesday12 2012, 09:24:27

1 ответ


2

Вы должны создать настраиваемый модуль для создания страницы «/login», которая запускает аутентификацию OpenID.

Создайте модуль с этим кодом:

/**
 * Implements hook_menu().
 */
function mymodule_menu() {

  $items['login'] = array(
    'title' => 'OpenID Login',
    'page callback' => 'openid_login',
    'access callback' => 'user_is_anonymous',
    'type' => MENU_CALLBACK,
  );

  return $items;
}

/*
 * Menu callback; start openid authenticate
 */
function mymodule_login() {

  $return_to = url('openid/authenticate', array('absolute' => TRUE, 'query' => array('destination' => 'user')));

  openid_begin("https://www.myopenid.com/", $return_to, array());
}

Пример работы с поставщиком myopenid.com. Перейдите на страницу «/login» на своем веб-сайте, чтобы войти в систему.

ответил tekilatexee 31 J000000Tuesday12 2012, 13:52:31

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132