したがって、現在のDrupal 7のOpenIDモジュールでは、メインページの[OpenID]をクリックする必要があります。次に、ユーザーがリンクするOpenIDプロバイダーのURLを入力します。私が使用したいプロバイダー(大学)とまったく同じように、ユーザーがホームページまたは私のdrupalサイトの最初の部分にアクセスするとすぐに、ページが表示される前に、特定のプロバイダーのURLで認証されますか?
その理由は、大学のネットワーク内の人々がサイトにアクセスして、「openid」ボタンをクリックするという追加の手順を実行しなくても、自分が誰であるかを自動的に確認できるようにするためです。シングルサインオンソリューションとよく似ています。
OpenID認証を開始するページ「/ login」を生成するには、カスタムモジュールを作成する必要があります。
次のコードでモジュールを作成します。
/**
* 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」にアクセスしてください。