public function testRequestPost() { $requestLine = 'POST /referees'; $headers = ['Content-Type' => 'application/json']; $data = ['name' => 'Art H', 'roles' => ['Developer']]; $request = new Request($requestLine, $headers, json_encode($data)); $item = $request->getParsedBody(); $this->assertEquals('Art H', $item['name']); }
public function postAction(Request $request) { $requestPayload = $request->getParsedBody(); if (isset($requestPayload['oauth_token'])) { $requestPayload['username'] = '******'; $requestPayload['password'] = '******'; } $username = $requestPayload['username']; $password = $requestPayload['password']; $user = $this->userProvider->loadUserByUsername($username); $salt = isset($user['salt']) ? $user['salt'] : null; $this->userPasswordEncoder->isPasswordValid($user['password'], $password, $salt); // Need array_values because index can get messed up $roles = is_array($user['roles']) ? array_values($user['roles']) : [$user['roles']]; $jwtPayload = ['iat' => time(), 'username' => $username, 'roles' => $roles, 'person_name' => $user['person_name'], 'person_guid' => $user['person_guid']]; $jwt = $this->jwtCoder->encode($jwtPayload); $jwtPayload['auth_token'] = $jwt; return new ResponseJson($jwtPayload, 201); }
require __DIR__ . '/../vendor/autoload.php'; use Cerad\Component\HttpMessage\Request as CeradRequest; use Cerad\Component\HttpMessage\Response; use Cerad\Component\HttpMessage\ResponseJson; use Symfony\Component\HttpFoundation\Request as SymfonyRequest; // Symfony\Component\HttpFoundation\Response as SymfonyResponse; // Symfony\Component\HttpFoundation\JsonResponse as SymfonyJsonResponse; $ceradRequest = new CeradRequest($_SERVER); $ceradUri = $ceradRequest->getUri(); $ceradServer = $ceradRequest->getServerParams(); $symfonyRequest = SymfonyRequest::createFromGlobals(); $user = '******'; $baseHref = $ceradRequest->getBaseHref(); $_serverPathInfo = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : 'UNDEFINED'; if ($ceradRequest->isMethodPost()) { $content = $ceradRequest->getParsedBody(); $user = $content['user']; if ($ceradRequest->isJson()) { $response = new ResponseJson($content, 201); $response->send(); return; } if ($ceradRequest->isForm()) { // Redirect if had a session to store things in } } ob_start(); require 'app.html'; $html = ob_get_clean(); $response = new Response($html); $response->send();