ページへ戻る

− Links

 印刷 

XCLBasicManual​/SSLログイン :: Xoops Users Group Japan

xpwiki:XCLBasicManual/SSLログイン

XCLBasicManual[1]

SSLログインの流れと動作原理 anchor.png[2]

  • SSLログインリンクをクリックする
  • 指定されたSSLサイト内のポップアップが開く (そのURLは、ユーザモジュールの一般設定にて指定)
  • ユーザ名とパスワードを入力・送信(送信先はSSLサイト内のlogin.php)
  • SSL経由でユーザ名とパスワードを受け取ってログイン成功
  • ログインしているセッションIDを通常のXOOPS_URLに送信する(送信は平文)*1
  • XOOPS_URLのmisc.phpがセッションIDを受け取って、XOOPS_URLについても有効なセッションIDとして認識させる
  • ポップアップウインドウに「閉じる」ボタンが表示される
  • クリックするとポップアップウインドウが閉じて、メイン画面側がリロードされる
Page Top

SSLログインを機能させるには anchor.png[3]

  • アーカイブのextras直下にある login.php をSSLサイトのいずれかに置く
    • そのlogin.phpから、XOOPS_ROOT_PATH/mainfile.php に相対的にアクセスできることが重要
    • login.php をエディタで開き、以下のコードを自分で書き換える
<?php
// This script displays a login screen in a popupbox when SSL is enabled in the preferences. You should use this script only when your server supports SSL. Place this file under your SSL directory

// path to your xoops main directory
$path = '/path/to/xoops/directory'; ←この行。通常はXOOPS_ROOT_PATHと同じ値
Page Top

その他の注意事項 anchor.png[6]

  • なぜか互換モジュールにも「ログインにSSLを使用する」等の設定があるが、おそらく意味はない。
  • cubeUtilsはSSLログインに対応していない。そのため、cubeUtilsのログインブロックでは、「ログインにSSLを使用する」を「はい」としても、SSLログインリンクは表示されない。
  • 少なくともXCL2.1.7までは、SSLログインするために必要なコードが書き忘れられている可能性がある。

fileSSLLogin.class.php[7]

このファイルを、XOOPS_ROOT_PATH/modules/user/preload/ にアップロードすることで初めてSSLログインは機能するようだ。

  • 「mainfile.phpも書き換えなければならない」という勘違いが多く見られるが、少なくともこのSSLログインでは、mainfile.php の書き換えは一切不要である。
    もちろん、SSLでも平文でも、同じようにアクセスできるサイト、ということであれば、$_SERVER['https'] 等のサーバ変数を利用して、XOOPS_URL の設定を振り分けるのはよく知られた方法である。

*1 SSLサイトから平文サイトにPOSTするので、多くのブラウザが警告を表示すると思われる

Last-modified: 2014-01-13 (月) 22:06:02 (JST) (1255d) by GIJOE