Authコンポーネントを使ったログイン機能の作り方はGeekGirlLaboのレッスンで習いましたよね!
今回はAuthコンポーネントを実装している環境で、システム側から任意のタイミングでログインさせる方法はないのかなあと調べていて見つけた方法を載っけておきます。
任意のタイミングというのは、たとえば
・新規会員登録時点では仮登録→メール認証して本登録→本登録したらそのままログインさせる
・パスワードを忘れてしまったユーザーがパスワードを再発行したら、変更後のパスワードを保存しつつログインさせる
・いろんなアカウントの種類があるアプリケーションで、テストするときにいちいちログイン情報を打つのがめんどくさい
というような場面を想定しています。
UsersController.php
public function test($id=null) { //url叩いた時点でログインできるテスト用functionです。 $user = $this->Users->findById($id)->first(); //ログインしたいユーザー情報 debug($user); //どのアカウントでログインできたかチェックする用に入れています。もちろん無くてもOK $this->Auth->setUser($user); //この一文で、$userの情報を使ってログインする }
たったこれだけでした。
ログインしたいユーザーのIDが3なら、
https://hogehoge.com/users/test/3
と打てばログインできます。
これで何種類ものアカウントを行き来しながらテストする時も簡単です。
まあ同時に複数のブラウザ使えばいいだけなんですが!
The following two tabs change content below.
金子風月
犬と歯車がついたものと跨り移動系スポーツ(馬・自転車)が好きな駆け出しweb系エンジニア。
2018年2月より、株式会社凛の皆様のおかげで憧れのweb系エンジニアになることができました。
最新記事 by 金子風月 (全て見る)
- vue.jsに触ってみた話 - 2019年3月26日
- DockerでCakePHP2の開発環境を作ってみた(Mac版) - 2019年3月15日
- CakePHP3+Authコンポーネントで任意のタイミングでログインさせる処理をつくる - 2019年3月14日
ユーザー、店舗、管理者と3アカウントあるのはよくあって、いちいちログインするのも、パスワードとかいちいち覚えてないので調べないといけなくて面倒なので、これもぜひ導入したいですね!
たしかに技術的には難しいことしてないんだけど、その発想はなかった…!!!
お客様にテストしていただく時も、アカウントとパスワードの組み合わせリストを伝えるより、URLクリックするだけの方が手軽だと好まれました!笑