canCrossAuthenticateUser = $canCrossAuthenticateUser; $this->crossAuthenticatesUser = $crossAuthenticatesUser; $this->generatesAuthenticationToken = $generatesAuthenticationToken; $this->fetchesUser = $fetchesUser; $this->authenticationRedirect = $authenticationRedirect; } /** * @param Request $request * @return array * @throws \App\Classes\Exceptions\AccessForbiddenException * @throws \App\Classes\Exceptions\AccessUnauthorisedException * @throws \App\Classes\Exceptions\RequestValidationException */ public function execute(Request $request): array { $object = new CrossAuthenticationCredentialsObject($request->input('access_token'), $request->input('platform')); $this->canCrossAuthenticateUser->passes($object); $cross = $this->crossAuthenticatesUser->execute($object); dd($cross); return ['access_token' => $this->generatesAuthenticationToken->execute($user), 'redirect_url' => $this->authenticationRedirect->url($user)]; } }