Мне интересно, каков рекомендуемый способ регистрации нового пользователя в приложении, использующем angular в качестве внешнего интерфейса и symfony (с api-платформой) в качестве внутреннего.
В настоящее время я просто публикую новыйпользовательский объект для API / пользователей.Однако я чувствую, что это не будет наилучшей практикой, поскольку мне нужно предоставить этот маршрут для анонимно аутентифицированных пользователей.
Я бы предпочел использовать маршрут регистрации, предоставляемый анонимно аутентифицированным пользователям, и выставить api /Пользователи маршрутизируют только для полностью аутентифицированных пользователей с ролью, такой как ROLE_ADMIN.
Поэтому у меня следующие вопросы:
- Не думаю ли я об этом?
- Если нет, то какреализовать это на стороне Symfony?
Пока у меня есть SignUpController, подобный этому:
/**
* @Route("/signup", name="signup")
*/
public function signUpAction(Request $request)
{
$user = new User();
$form = $this->createForm(UserType::class, $user);
$form->handleRequest($request);
if ($request->isMethod('POST')) {
try {
$em = $this->getDoctrine()->getEntityManager();
$em->persist($user);
$em->flush();
return new JsonResponse($user);
} catch (\Exception $e) {
return new JsonResponse($e->getMessage(), 500);
}
}
}
Но таким образом методы, такие как $form->isSubmitted()
и $form->isValid()
недоступныи, что более важно, $form->handleRequest()
ничего не делает, а это значит, что мне придется увлажнять мой $user
объект вручную, что далеко от идеала.