Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récuperation de session sur Synfony à React

    22 février 2024 à 23:49:41

     Bonsoir à tous, j'ai donc réaliser une messagerie sur un serveur Synfony avec une vue sur React. On se connecte grâce au serveur Synfony avec l'adresse :
     https://localhost:8000/
     Puis la vue que j'ai réaliser avec React ce trouve sur l'adresse :
     
     http://localhost:3000
     
     Mais je n’arrive donc pas à récupérer ma session sur mon serveur React. Je vous donne donc le code.

    Donc coté serveur PHP Synfony


        #[Route('/chat/{slug}', name: 'app_messagerie_chat')]
    publicfunctionchat(Request$request, MessagesRepository$messagesRepository, ManagerRegistry$doctrine, $slug): Response
        {



    $entityManager = $doctrine->getManager();
    $message = newMessages();

    // On récupère le message
    $rest_json = file_get_contents('php://input');
    $_POST = json_decode($rest_json, true);

    $title = $_POST['message'];





    $user = 1;



    $userRepo = $entityManager->getRepository(Annonces::class);
    $id = $userRepo->findOneBy(["slug" => $slug]);
    $recipient = $id->getUser();


    $userRepo = $entityManager->getRepository(User::class);
    $sender = $userRepo->find($user);


    $recipient = $userRepo->find($recipient);

    $message->setMessage($title);
    $message->setChat(1);
    $message->setSender($sender);
    $message->setRecipient($recipient);
    $message->setAnnonce($id);
    $entityManager->persist($message);
    $entityManager->flush();



    $userRepo = $entityManager->getRepository(Messages::class);
    $idposte = $userRepo->findOneBy(["sender" => $sender, "recipient" => $recipient, "annonce" => $id]);








    header("Access-Control-Allow-Origin: http://localhost:3000/messages/{$slug}");
    header("Content-Type: application/json");

    returnnewJsonResponse($title);
        }

    Du coté react:

    import { useRouter } from"next/router";
    import { useState, useEffect } from'react';

    functionApp() {
    constrouter=useRouter();
    const [message, setMessage] =useState('')
    const [resultMessage, setResultMessage] =useState('')
    const [isOpen, setIsOpen] =useState(false)
    constid=router.query.id;

    consthandleClick=async (event) => {

    setIsOpen(true)

    setMessage("");
    event.preventDefault()
    try {
    awaitfetch(`https://localhost:8000/messagerie/chat/${id}`, {
    method:'POST',
    body:JSON.stringify({
    message:message,
    send:1,
            }),
          })
            .then((respose) => {
    if (respose.ok) {
    returnrespose.json()
              }
    thrownewError('error')
            })
            .then((data) => {
    if (data.result) {
    setResultMessage(data.result)
    setMessage('')
              } else {
    //set error
              }
            })
        } catch (error) {
    console.log(error.message)
        }
      }

    consthandleChange= (event) => {
    setMessage(event.target.value);

      };



    return (
    <>

    <liclassName="mb-3">
    <input
    type="text"
    class="form-control form-control-lg"
    id="exampleFormControlInput1"
    placeholder="Type message"
    onChange={handleChange}
    value={message}
    />


    </li>

    <buttonclass="btn btn-link"onClick={handleClick}><iclass="fa fa-paper-plane-o"aria-hidden="true"></i></button>
    </>
      )
    }

    exportdefaultApp

    Encore désolé de ne pas utiliser l’éditeur de openclassrooms, même en sélectionnent le bon langage j'ai l'erreur:


    Sorry, you have been blocked
    You are unable to access openclassrooms.com

    Merci de votre aide!


    -
    Edité par Frédouze 22 février 2024 à 23:50:29

    • Partager sur Facebook
    • Partager sur Twitter

    Récuperation de session sur Synfony à React

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    • Editeur
    • Markdown