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

  関連記事

【Cake】【PHP】検索文字にスペースがあったら分割してAND検索 OR検索

全角かなとかも変換。 [crayon-592a20023cd8f40222907 …

Cakeでログインして、その情報をCake以外のPHPから参照したい。(セッションの共有)

なんてことは無かった。 cakeでAuthコンポーネント使ってログインして、それ …

cakeのマニュアル読んでると具合悪くなってくる

なぜ!?

【Cake】paginateのデフォルトソート設定がうまく行かない。。

マニュアルとかを見ると コントローラーで [crayon-592a20023d6 …

[Cake]ログイン時に元見ていたページに遷移させる。

よくある、コンテンツからログインしたときに、元のページに飛ぶという奴。 cake …