1

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);
}
4

1 に答える 1