Il s'agit d'une fonction sur ma page de composant de connexion et result.user lorsque l'utilisateur se connecte avec succès répond avec des informations utilisateur. Comment puis-je envoyer les informations result.user à ma page principale, afin que je puisse définir ce qu'un utilisateur peut et ne peut pas faire?
newLogin = (e) => {
fetch("http://localhost:4000/login", {
method: "POST",
headers: {
"Content-type": "application/json",
},
body: JSON.stringify(this.state)
})
.then((response) => response.json())
.then((result) => {
console.log(result.user)
});
}
3 Réponses :
Je ne connais pas la structure de vos composants mais vous devriez utiliser react-redux pour stocker votre utilisateur connecté car ces données sont nécessaires pour accéder n'importe où dans votre application et dans n'importe quel composant, je vous recommande vivement d'utiliser react react-redux pour vos meilleures pratiques.
React-redux est facile à utiliser et facile d'accès aux données de tout utilisateur connecté à partir de l'état, il est donc préférable d'approcher d'utiliser react-redux au lieu de passer des données via des accessoires.
vous pouvez utiliser localStorage pour stocker les données dans le navigateur. dans lequel vous pouvez stocker les données et les utiliser n'importe où dans votre code. vous n'avez pas besoin de transmettre les données. lorsque l'utilisateur se déconnecte, vous devez effacer le stockage. Pour créer un élément dans le stockage
localStorage.getItem('userData');
Pour effacer les données lors de la déconnexion de l'utilisateur
localStorage.removeItem('userData');
ici, userData représente les données stockées dans le navigateur. vous pouvez vérifier à chaque fois que vous en avez besoin, de sorte que si l'utilisateur est toujours connecté en utilisant
localStorage.setItem('userData', 'result.user')
si userData est disponible, vous pouvez considérer que l'utilisateur est connecté.
J'ai pensé que cela peut fonctionner. Mais n'y a-t-il pas un meilleur moyen de connecter mon frontend reactjs et nodejs plutôt que d'avoir à enregistrer les données utilisateur dans localstorage? Parce qu'en même temps, lorsque quelqu'un achète mon produit, je dois également mettre à jour sa base de données backend.
La meilleure pratique pour gérer la connexion des utilisateurs dans les applications React est d'utiliser la gestion de l'état pour ceux comme Redux et Mobx, vous pouvez utiliser React.Context qui est facile à utiliser. Dans un cas, j'ai créé un wrapper pour React.Context. React-principal Dans un autre cas, j'ai créé une gestion d'état qui est tellement plus facile à utiliser react-global-hook
Vous invoqueriez généralement un rappel qui a été passé comme accessoire d'un composant parent au composant de connexion, ou vous enverriez peut-être une action redux pour le stocker dans l'état de l'application auquel l'autre composant est abonné, ou peut-être que votre application utilise le contexte React API. Pouvez-vous fournir un exemple de code plus minimal, complet et reproductible de la relation entre ces deux composants?
Créez un élément d'état dans votre fichier principal et transmettez-le en tant qu'accessoires. Ensuite, en utilisant la fonction
setUser(disons), vous pouvez définir l'utilisateur surresult.user. Vous l'avez maintenant dans votre fichier principal dans la variableuser.Vous pouvez utiliser context, redux, localstorage ce que vous voulez réellement;) En savoir plus sur les bonnes pratiques pour stocker les informations utilisateur de manière sécurisée;)