For Want Of A Better Word

【Cake】Cake + Cake外のコンテンツ(html,php)で認証機能を利用する

   

はじめに

やりたいことは、静的なコンテンツを生成するCMS(MovableType)に対し、
会員機能(ログイン機能)を設けるということ。

やり方概要

大きく下記の二つと想定。

  • ①htmlをphpとして解釈して、各ページで都度認証チェックさせる。
  • ②htmlへの直接アクセスはさせず、cakeアプリケーションでhtmlをパースして表示させる。

 

詳細:①htmlをphpとして解釈して、各ページで都度認証チェックさせる。

(1)Cakeでログイン機能の作成

※ログインの仕組みは普通のAuthコンポーネントで作成。こっち参照

(2)HTML(PHP)側で認証が必要なページについて、下記のように、$_SESSION[‘Auth’]の有無でログイン済みか否かを判定する。

これは、外部に部品として作成して、includeなりするイメージ。

 

あとは、HTML部分で随時下記のように出しわけでOK。

これをCMS側で書く。

せいぜい条件分岐ぐらいなので、CMS側でも出来るでしょうと。

複雑な部分は部品にしてincludeするようにすればそれはそれでOK。

 

詳細:②htmlへの直接アクセスはさせず、cakeアプリケーションでhtmlをパースして表示させる

こっちは、もう出しわけとかも全部プログラム側でやる。
コンテンツを作成するのが、デザイナー、コーダーの場合はちょっと自由度が低くなるかな。

 

(1)認証機能は①と同様普通に作る。こっち参照

(2)HTMLパスをもらって、パースして表示する仕組みを作成する

コントローラーはこんな感じ

 

③対象のファイルへのアクセスを上記コントローラーに投げるようにmod_rewriteを設定。

 

 

※Redirec([R]指定)じゃ無いとうまくいかない。しかし、URLが長くなりあまり気持ちよくない。。。なんでだろ。

 

まとめ

 

個人的には、①のほうが分かりやすくて好き。

②だと、コーダーと開発の分業はできるけど、ちょっとしたレイアウト変更とかが、いちいちプログラムも直さないといけないし、パース・書き換えが分かりづらくなりそう。。。

 

②はちょっと無理矢理すぎるかな。

 

 

 - cake

  関連記事

cakephp_logo
CakePHP

– ①バリデーションを使わないでチェックした内容のメッセージをval …

cakephp_logo
【Cake】設定・appを公開領域外に配置

cakeの設定類、アプリを公開領域外に配置したい。 大事な情報は公開領域におきた …

cakephp_logo
【Cake】bakeの手順 | デフォルト管理画面をbootstrapに対応させる

※CakePHPのマニュアルが嫌いだ!! cakeを落としてきて、 wget h …

cakephp_logo
cakephpのscaffoldとbakeの違い

scafold -開発者がオブジェクトを生成・取り出し・更新・削除することができ …

cakephp_logo
フレームワーク活用の技術

フレームワークを使いこなすにあたり、評価するための観点。 アプリケーションのどの …