/** * @param Request $request * @return JsonResponse|EmptyResponse */ public function handle(Request $request) { $actor = $request->getAttribute('actor'); $Referer = $request->getHeader('Referer'); $params = array_only($request->getParsedBody(), ['identification', 'password']); $response = $this->apiClient->send(TokenController::class, $actor, [], $params); if ($response->getStatusCode() === 200) { $data = json_decode($response->getBody()); $session = $request->getAttribute('session'); $this->authenticator->logIn($session, $data->userId); $token = AccessToken::find($data->token); event(new UserLoggedIn($this->users->findOrFail($data->userId), $token)); $response = FigResponseCookies::set($response, SetCookie::create("lastLoginName")->withValue($request->getParsedBody()['identification'])->withPath('/')); $response = $this->rememberer->remember($response, $token); } elseif ($response->getStatusCode() === 401) { $responseNew = $this->apiClient->send(PingxxTokenController::class, $actor, [], $params); if ($responseNew->getStatusCode() === 200) { $data = json_decode($responseNew->getBody()); $session = $request->getAttribute('session'); $this->authenticator->logIn($session, $data->userId); $token = AccessToken::find($data->token); event(new UserLoggedIn($this->users->findOrFail($data->userId), $token)); $responseNew = FigResponseCookies::set($responseNew, SetCookie::create("lastLoginName")->withValue($request->getParsedBody()['identification'])->withPath('/')->withDomain('dashboard.pingxx.com')); $responseNew = $this->rememberer->remember($responseNew, $token); return $responseNew; } else { return $response; } } return $response; }
/** * {@inheritdoc} */ public function __invoke(Request $request, Response $response, callable $out = null) { $id = array_get($request->getCookieParams(), 'flarum_remember'); if ($id) { $token = AccessToken::find($id); if ($token) { $token->touch(); $session = $request->getAttribute('session'); $session->set('user_id', $token->user_id); } } return $out ? $out($request, $response) : $response; }
/** * @param Request $request * @return JsonResponse|EmptyResponse */ public function handle(Request $request) { $actor = $request->getAttribute('actor'); $params = array_only($request->getParsedBody(), ['identification', 'password']); $response = $this->apiClient->send(TokenController::class, $actor, [], $params); if ($response->getStatusCode() === 200) { $data = json_decode($response->getBody()); $session = $request->getAttribute('session'); $this->authenticator->logIn($session, $data->userId); $token = AccessToken::find($data->token); event(new UserLoggedIn($this->users->findOrFail($data->userId), $token)); $response = $this->rememberer->remember($response, $token); } return $response; }
/** * {@inheritdoc} */ public function __invoke(Request $request, Response $response, callable $out = null) { $headerLine = $request->getHeaderLine('authorization'); $parts = explode(';', $headerLine); if (isset($parts[0]) && starts_with($parts[0], $this->prefix)) { $id = substr($parts[0], strlen($this->prefix)); if (isset($parts[1]) && ApiKey::valid($id)) { $actor = $this->getUser($parts[1]); } elseif ($token = AccessToken::find($id)) { $token->touch(); $actor = $token->user; } if (isset($actor)) { $request = $request->withAttribute('actor', $actor); } } return $out ? $out($request, $response) : $response; }