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系エンジニアになることができました。