/** * @param Request $request * @param array $routeParams * @return \Psr\Http\Message\ResponseInterface */ public function handle(Request $request, array $routeParams = []) { $user = app('flarum.actor'); if ($user->exists) { $token = array_get($request->getQueryParams(), 'token'); AccessToken::where('user_id', $user->id)->findOrFail($token); $user->accessTokens()->delete(); event(new UserLoggedOut($user)); } return $this->withForgetCookie($this->redirectTo('/')); }
/** * @param Request $request * @param array $routeParams * @return \Psr\Http\Message\ResponseInterface */ public function handle(Request $request, array $routeParams = []) { $user = $request->getAttribute('actor'); if ($user->exists) { $token = array_get($request->getQueryParams(), 'token'); AccessToken::where('user_id', $user->id)->findOrFail($token); $user->accessTokens()->delete(); $this->events->fire(new UserLoggedOut($user)); } return $this->withForgetCookie(new RedirectResponse($this->app->url())); }
/** * @param Request $request * @param array $routeParams * * @return JsonResponse */ public function handle(Request $request, array $routeParams = []) { $params = ['data' => ['attributes' => $request->getAttributes()]]; $apiResponse = $this->apiClient->send(app('flarum.actor'), 'Flarum\\Api\\Actions\\Users\\CreateAction', $params); $body = $apiResponse->getBody(); $statusCode = $apiResponse->getStatusCode(); $response = new JsonResponse($body, $statusCode); if (!empty($body->data->attributes->isActivated)) { $token = $this->bus->dispatch(new GenerateAccessToken($body->data->id)); // Extend the token's expiry to 2 weeks so that we can set a // remember cookie AccessToken::where('id', $token->id)->update(['expires_at' => new DateTime('+2 weeks')]); return $this->withRememberCookie($response, $token->id); } return $response; }
/** * @param Request $request * @param array $routeParams * @return JsonResponse|EmptyResponse */ public function handle(Request $request, array $routeParams = []) { $params = array_only($request->getAttributes(), ['identification', 'password']); $data = $this->apiClient->send(app('flarum.actor'), 'Flarum\\Api\\Actions\\TokenAction', $params)->getBody(); // TODO: The client needs to pass through exceptions(?) or the whole // response so we can look at the response code. For now if there isn't // any useful data we just assume it's a 401. if (isset($data->userId)) { // Extend the token's expiry to 2 weeks so that we can set a // remember cookie AccessToken::where('id', $data->token)->update(['expires_at' => new DateTime('+2 weeks')]); event(new UserLoggedIn($this->users->findOrFail($data->userId), $data->token)); return $this->withRememberCookie(new JsonResponse($data), $data->token); } else { return new EmptyResponse(401); } }
/** * @param Request $request * @param array $routeParams * @return JsonResponse|EmptyResponse */ public function handle(Request $request, array $routeParams = []) { $controller = 'Flarum\\Api\\Controller\\TokenController'; $actor = $request->getAttribute('actor'); $params = array_only($request->getParsedBody(), ['identification', 'password']); $response = $this->apiClient->send($controller, $actor, [], $params); if ($response->getStatusCode() === 200) { $data = json_decode($response->getBody()); // Extend the token's expiry to 2 weeks so that we can set a // remember cookie AccessToken::where('id', $data->token)->update(['expires_at' => new DateTime('+2 weeks')]); event(new UserLoggedIn($this->users->findOrFail($data->userId), $data->token)); return $this->withRememberCookie($response, $data->token); } else { return $response; } }
/** * @param Request $request * @param array $routeParams * * @return JsonResponse */ public function handle(Request $request, array $routeParams = []) { $controller = 'Flarum\\Api\\Controller\\CreateUserController'; $actor = $request->getAttribute('actor'); $body = ['data' => ['attributes' => $request->getParsedBody()]]; $response = $this->api->send($controller, $actor, [], $body); $body = json_decode($response->getBody()); $statusCode = $response->getStatusCode(); $response = new JsonResponse($body, $statusCode); if (!empty($body->data->attributes->isActivated)) { $token = $this->bus->dispatch(new GenerateAccessToken($body->data->id)); // Extend the token's expiry to 2 weeks so that we can set a // remember cookie AccessToken::where('id', $token->id)->update(['expires_at' => new DateTime('+2 weeks')]); return $this->withRememberCookie($response, $token->id); } return $response; }