/**
* Authenticate request with the OAuth 2.0 resource server.
*
* @param \Illuminate\Http\Request $request
* @param \Dingo\Api\Routing\Route $route
*
* @throws \Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException
* @throws \Exception
*
* @return mixed
*/
public function authenticate(Request $request, Route $route)
{
try {
$this->validateAuthorizationHeader($request);
} catch (Exception $exception) {
if (!$request->query('access_token', false)) {
throw $exception;
}
}
try {
$this->resource->isValidRequest($this->httpHeadersOnly);
$token = $this->resource->getAccessToken();
if ($route->scopeStrict()) {
$this->validateAllRouteScopes($token, $route);
} else {
$this->validateAnyRouteScopes($token, $route);
}
return $this->resolveResourceOwner($token);
} catch (OAuthException $exception) {
throw new UnauthorizedHttpException('Bearer', $exception->getMessage(), $exception);
}
}