CodeIgniter ログイン認証(DX Auth)の導入

line

CodeIgniterでログイン認証を構築してみます。いろいろな種類があるみたいですが、
「更新が止まっていない」、「ドキュメントがしっかりしている」などの理由から、DX Authを採用してみたいと思います。

環境及びバージョン
・CodeIgniter: 1.7.2-1
・DX Auth: 1.0.6

ダウンロード
・「公式サイト」から、DX Authの最新版をダウンロード。

インストール
Installation Instructions(公式マニュアル)を参考に、インストールを進めます。
今回はバンドル版をインストールします。(他、ライブラリのみインストールする手順も書いてあります。)

1
2
3
4
5
6
7
8
9
10
11
12
$ cd /var/www/html/ci172ja  <= ドキュメントルート(環境による)
$ mkdir tmp
$ cd tmp
$ cp /tmp/dx_auth-1.0.6.zip .
$ unzip dx_auth-1.0.6.zip
$ cp -r captcha ../
$ cp -r application ../system/
$ mysql -uUSERNAME -pPASSWD DBNAME < schema.sql
$ cd ..
$ rm -fr tmp
$ vi system/application/config/config.php
$config['sess_use_database']    = TRUE;  <= 変更

ブラウザで表示確認 (1)
Getting Started(公式マニュアル)を参考に表示確認を進めてみます。

ここで問題が発生してしまいました。

1
2
http://www.yourhost.com/auth/login  => 表示されない
http://www.yourhost.com/index.php/auth/login  => 表示される

あえてクエリ文字列を表示する場合は別として、URLに「index.php」が残るのはスマートじゃぁないです。(*_*)

調べてみると、どうやらこれはCodeIgniterの仕様のようでした。(私の経験不足w)
CodeIgniter の URL(公式マニュアル)を参考に、.htaccessを設置してみます。

1
2
3
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

はい、これで解消されました!
でも、これって例外ページが増えるたびに.htaccessを更新しないといけないの?
まぁいいか、運用でカバーできるならばw あ、そもそもサブディレクトリに設置すればいいのか!
などと考えつつ、気を取り直して表示確認へ戻りたいと思います。

httpd.confへ記入する場合の例

1
2
3
4
5
6
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond $1 !^/(index\.php|images|robots\.txt)
  RewriteRule ^/index.php/(.*)$ http://%{HTTP_HOST}/$1 [L,R]
  RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

ブラウザで表示確認 (2)

1
2
3
4
5
6
7
8
9
10
11
12
http://www.yourhost.com/auth/login/ to login.
http://www.yourhost.com/auth/logout/ to logout.
http://www.yourhost.com/auth/register/ to register.
http://www.yourhost.com/auth/register_recaptcha/ to register using reCAPTCHA.
http://www.yourhost.com/auth/forgot_password/ to use forgot password feature.
http://www.yourhost.com/auth/change_password/ to change password after you logged in.
http://www.yourhost.com/auth/cancel_account/ to delete account after you logged in.
http://www.yourhost.com/backend/users/ to manage users.
http://www.yourhost.com/backend/unactivated_users/ to manage unactivated users.
http://www.yourhost.com/backend/roles/ to manage roles.
http://www.yourhost.com/backend/uri_permissions/ to manage URI permissions.
http://www.yourhost.com/backend/custom_permissions/ to manage custom permissions.

とりあえず、全て表示されました。なんか機能豊富ですね!
全体を通しての動作確認は、また別途行うという事にしたいですが、
ReCAPTCHAの設定とかセキュリティ対策とかも残っていますね。

それでは、また~ (^^)/~

(2022/01/29) コメントスパムが多くなりましたので、コメント・トラックバックを一時無効にしました。