Symfony 3.3.10、ユーザーを作成してDBに設定し、オブジェクトユーザーでjsonを返すlexik/jwt-authentication-bundle": "~2.0"
登録用のエンドポイントがあります。/api/registrations
そして/api/login_check
、JWTがリフレッシュトークンでトークンを返す認証用のエンドポイントがあります私の質問、登録アクションでJWT認証ハンドラーを呼び出し、ユーザーオブジェクトの代わりにリフレッシュトークンでトークンを返す方法は?
これは私のセキュリティです
login:
pattern: ^/api/login
stateless: true
anonymous: true
form_login:
check_path: /api/login_check
require_previous_session: false
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
register:
pattern: ^/api/registrations
stateless: true
anonymous: true
そしてregに対する私の行動
public function postRegistrationAction(Request $request)
{
$em = $this->get('doctrine')->getManager();
$encoder = $this->container->get('security.password_encoder');
$logger = $this->container->get('logger');
try {
$auth = $this->get('app.auth');
/** @var User $user */
$user = $auth->validateEntites('request', User::class, ['registration']);
$password = $request->request->get('_password');
$user
->setPassword($encoder->encodePassword($user, $password));
$em->persist($user);
$em->flush();
return $this->createSuccessResponse($user, ['profile'], true);
} catch (ValidatorException $e) {
$view = $this->view(['message' => $e->getErrorsMessage()], self::HTTP_STATUS_CODE_BAD_REQUEST);
$logger->error($this->getMessagePrefix().'validate error: '.$e->getErrorsMessage());
} catch (\Exception $e) {
$view = $this->view((array) $e->getMessage(), self::HTTP_STATUS_CODE_BAD_REQUEST);
$logger->error($this->getMessagePrefix().'error: '.$e->getMessage());
}
return $this->handleView($view);
}