public function requestCodeAction(Request $request, Application $app)
{
$session = $request->getSession();
$_username = $session->get('_username', substr(md5(uniqid(null, true)), 0, 8));
$_password = $session->get('_password', substr(md5(uniqid(null, true)), 0, 8));
$session->set('_username', $_username);
$session->set('_password', $_password);
$userManager = $app['authbucket_oauth2.model_manager.factory']->getModelManager('user');
$user = $userManager->createUser()->setUsername($_username)->setPassword($_password)->setRoles(['ROLE_USER']);
$userManager->updateUser($user);
$parameters = ['response_type' => 'code', 'client_id' => 'authorization_code_grant', 'redirect_uri' => $request->getUriForPath('/demo/response_type/code'), 'scope' => 'demoscope1 demoscope2 demoscope3', 'state' => $session->getId()];
$url = Request::create($request->getUriForPath('/demo/authorize'), 'GET', $parameters)->getUri();
return $app->redirect($url);
}