Quantcast
Channel: Active questions tagged symfony4 - Stack Overflow
Viewing all articles
Browse latest Browse all 3924

Jwt Token decode - Symfony 4

$
0
0

I am trying to solve a problem related with token request. It is my newArticle function (to add new article) in the controller:

public function newArticle(Request $request, EntityManagerInterface $entityManager): View
    {
        $data = json_decode($request->getContent(), true);
        $title = $data['title'];
        $content = $data['content'];
        //$published_at = $data['published_at'];
        $authorizationHeader = $request->headers->get('Authorization');
        list(,$token) = explode('', $authorizationHeader);
        $jwtToken = $this->JWTEncoder->decode($token);
        $user_id = $data[$jwtToken];
        $userId = $this->userRepository->findOneBy(['id' => $user_id['id']]);
        $article = new Article();
        $article->setTitle($title);
        $article->setContent($content);
        $article->setPublishedAt(new \DateTime());
        $article->setUser($userId);
        // Todo: 400 response - Invalid input
        // Todo: 404 response - Response not found
        // Incase our Post was a success we need to return a 201 HTTP CREATED response with the created object
        if(in_array('ROLE_USER', $article->getUser()->getRoles(), true)) {
            $entityManager->persist($article);
            $entityManager->flush();
            return View::create("You added an article successfully!", Response::HTTP_OK);
        } else {
            return View::create(["You are not a user! So please register to add an article!"], Response::HTTP_BAD_REQUEST);
        }
    } 

It is working before adding token header authorization and now I got this error:

"error": {
   "code": 500,
  "message": "Internal Server Error",
 "message": "Notice: Undefined offset: 1", 

Can someone give me any suggestions?


Viewing all articles
Browse latest Browse all 3924

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>