LoginSignup
0
0

More than 1 year has passed since last update.

Laravelの認証のGuard

Posted at

Laravelの認証には「Guard」と「Provider」という概念がある。
今回は「Guard」について一度整理してみる。

Guard

公式による定義は以下。

Guards define how users are authenticated for each request. For example, Laravel ships with a session guard which maintains state using session storage and cookies.

デフォルトでは以下のGuardが用意されている。
- SessionGuard
- TokenGuard
- RequestGuard

またinterfaceは以下。
Guard

上記公式による定義の通り、Guardはリクエストごとにユーザーを認証する方法を定義しているが、どうやって定義しているかをinterfaceを使って見てみる。

check()

    /**
     * Determine if the current user is authenticated.
     *
     * @return bool
     */
    public function check();

現在のユーザーが認証されているかを確認し、認証されていればtrueを返す。

guest()

    /**
     * Determine if the current user is a guest.
     *
     * @return bool
     */
    public function guest();

現在のユーザーがguest、つまり未認証かどうかを確認し、未認証であればtrueを返す。
check()の反転。

user()

    /**
     * Get the currently authenticated user.
     *
     * @return \Illuminate\Contracts\Auth\Authenticatable|null
     */
    public function user();

認証済みのユーザーを返す。

id()

    /**
     * Get the ID for the currently authenticated user.
     *
     * @return int|string|null
     */
    public function id();

認証済みのユーザーのIDを返す。

validate()

    /**
     * Validate a user's credentials.
     *
     * @param  array  $credentials
     * @return bool
     */
    public function validate(array $credentials = []);

ユーザーの識別情報を検証する。OKであればtrueを返す。

setUser()

    /**
     * Set the current user.
     *
     * @param  \Illuminate\Contracts\Auth\Authenticatable  $user
     * @return void
     */
    public function setUser(Authenticatable $user);

認証済ユーザーをセットする。

interfaceを見て

interfaceを見たら大体使い方が分かってくる。

  • ログイン時の検証をvalidate()で行い、OKであればそのユーザーをsetUser()でセットしてする。
  • 認証済みかどうかをチェックしたい場合はcheck()guest()を使う。
  • 認証済みのユーザー情報を取得したい場合はuser()id()を使う。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0