メイン CakePHP モデル(Model)
どのControllerでもログインは出来ますか? | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| usaco | 投稿日時: 2010-3-8 17:57 |
Baker スタート ![]() ![]() 登録日: 2009-7-16 居住地: Tokyo 投稿: 5 |
どのControllerでもログインは出来ますか? AuthComponentでUsersController以外でログイン出来るよう設定を変えることは存じていますが、
UsersControllerに限らずどのControllerでもログインすることは出来るものなのでしょうか? 現在はUsersController以外でのControllerではログイン出来ないという認識なので、 私が作っている自動ログインのシステムは ■hogesController ログインしていないユーザーはクッキーからパスポート確認あったら ↓ ■UsersController UsersControllerのloginにリダイレクトし、ログインする ↓ ■hogesController 先ほど見ていたページにリダイレクト という形をとっています。 ですが、外部リンクからだと認識出来なかったり、PEARのNet_IPv4を読み込もうと思っても、この自動ログインのシステムがネックで出来なかったりします。 これを、以下のように出来たらと思っています。 ■hogesController ログインしていないユーザーはクッキーからパスポート確認あったら、ログインする UsersControllerに飛ばずにログイン出来る方法があればすべては解決するのですが、方法はありますでしょうか? |
| usaco | 投稿日時: 2010-3-8 18:03 |
Baker スタート ![]() ![]() 登録日: 2009-7-16 居住地: Tokyo 投稿: 5 |
Re: どのControllerでもログインは出来ますか? 投稿者です、自動ログインのソースを提示します。
パスポートを調べてあったら、UsersControllerからpassport($user)を実行させています。 |
| hiromi2424 | 投稿日時: 2010-3-8 21:26 |
Baker 常連 ![]() ![]() 登録日: 2009-11-23 居住地: 新潟 投稿: 58 |
Re: どのControllerでもログインは出来ますか? とすると、ログイン処理が行われます。 http://www.webdevelopment2.com/cakephp-auth-component-tutorial-3/ 英語ですがこちらの記事に永続ログインについて詳しくチュートリアルが書かれています。 コードだけ追ってみても参考になるのではないかと思います。 |
| usaco | 投稿日時: 2010-3-9 3:32 |
Baker スタート ![]() ![]() 登録日: 2009-7-16 居住地: Tokyo 投稿: 5 |
Re: どのControllerでもログインは出来ますか? それだと、UsersControllerでしか作用しませんよね?
AuthというのはデフォルトでUsersControllerが指定されているからです。 amazonのサイトのように、どのページを開いても自動ログインされるシステムを作りたいのです。。 UsersControllerでも、PhotosControllerでもリダイレクトせずにログイン出来るようにしたいのです。 やはり、AuthComponentではどのページでもログインするというのは難しいのでしょうか。 |
| hiromi2424 | 投稿日時: 2010-3-9 7:29 |
Baker 常連 ![]() ![]() 登録日: 2009-11-23 居住地: 新潟 投稿: 58 |
Re: どのControllerでもログインは出来ますか? 引用:
それだと、UsersControllerでしか作用しませんよね? 誤解です。 指定するのはプロパティ名どおりモデル名であって、どのコントローラでも、Authコンポーネント内部でUserモデルが確実に読み込まれる仕組みになっています。 英語の記事は読まれましたでしょうか。 手動でAuthComponent::startup()でするような処理が記述されていますので、参考になると思います。 追記: 更にいうならば、AuthComponent::login()と、UsersController::login()は別物です。 AppController::beforeFilter()で、$this->Auth->login()を呼べば、全コントローラ内で希望の処理ができると思います。 |
| usaco | 投稿日時: 2010-3-9 13:04 |
Baker スタート ![]() ![]() 登録日: 2009-7-16 居住地: Tokyo 投稿: 5 |
Re: どのControllerでもログインは出来ますか? hiromi2424さんの言葉がきっかけでようやく初歩的な間違いに気付きました。
$this->Auth->fieldsの設定をUsersControllerで変えていて、他のControllerではログイン出来なかったようです。 現在は指示どうり、AppController::beforeFilter()に$this->Auth->login()を呼んで、 $this->Auth->fieldsもAppControllerで行い、自動ログインの機能を作り変えました。 1ヶ月ほど未解決のままだったので、とてもスッキリしました。有難う御座います。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |



