Файл: gapps/vendor/laravel/framework/src/Illuminate/Auth/RequestGuard.php
Строк: 56
<?php
namespace IlluminateAuth;
use IlluminateHttpRequest;
use IlluminateContractsAuthGuard;
class RequestGuard implements Guard
{
use GuardHelpers;
/**
* The guard callback.
*
* @var callable
*/
protected $callback;
/**
* The request instance.
*
* @var IlluminateHttpRequest
*/
protected $request;
/**
* Create a new authentication guard.
*
* @param callable $callback
* @param IlluminateHttpRequest $request
* @return void
*/
public function __construct(callable $callback, Request $request)
{
$this->request = $request;
$this->callback = $callback;
}
/**
* Get the currently authenticated user.
*
* @return IlluminateContractsAuthAuthenticatable|null
*/
public function user()
{
// If we've already retrieved the user for the current request we can just
// return it back immediately. We do not want to fetch the user data on
// every call to this method because that would be tremendously slow.
if (! is_null($this->user)) {
return $this->user;
}
return $this->user = call_user_func($this->callback, $this->request);
}
/**
* Validate a user's credentials.
*
* @param array $credentials
* @return bool
*/
public function validate(array $credentials = [])
{
return ! is_null((new static(
$this->callback, $credentials['request']
))->user());
}
/**
* Set the current request instance.
*
* @param IlluminateHttpRequest $request
* @return $this
*/
public function setRequest(Request $request)
{
$this->request = $request;
return $this;
}
}