Maison >développement back-end >tutoriel php >laravel5.6 et thinkphp3.2 utilisent Redis pour partager une session
Cet article présente principalement la solution consistant à utiliser redis pour partager des sessions entre laravel5.6 et thinkphp3.2. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
En pratique Parmi les projets, le projet historique a été développé avec thinkphp3.2. Il est désormais nécessaire de mettre à jour les fonctions. Il est prévu que les fonctions mises à jour soient développées avec laravel5.6. Description du problèmePlusieurs problèmes clés doivent être résolus, dont l'un est celui de l'authentification des utilisateurs. Autrement dit, une fois que le système 1 s'est connecté, le système 2 reconnaît automatiquement ses informations de connexion. C'est-à-dire que l'essentiel doit être résolu : le problème de la session de partage Laravel et Thinphp. Conception du projetLa session utilise Redis pour le stockage. Thinkphp et Laravel accèdent à Redis ensemble et obtiennent automatiquement les informations utilisateur authentifiées stockées dans Redis sur la base du même cookie. Solutionthinkphp active le support redisthinkphp3.2 n'a pas de support redis pour les sessions intégrées. À l'heure actuelle, nous utilisons les paramètres de php pour l'activer. Dans index.php, nous ajoutons les deux lignes d'instructions suivantes :ini_set("session.save_handler", "redis"); ini_set("session.save_path", "tcp://redis:6379");Vous pouvez également l'ajouter au fichier de configuration config.php À ce moment-là, lorsque thinkphp stocke le session, sera stocké sous le préfixe PHPREDIS_SESSION. Ouverture de Redis dans LaravelLa méthode d'ouverture de Redis dans Laravel est relativement compliquée. Pour des informations spécifiques, vous devez vous référer à la documentation officielle pour utiliser composer pour installer Predis et effectuer les configurations associées. Laravel obtient la session de thinkphpParce que laravel a complètement obsolète la session intégrée de PHP. Il n'y a donc aucun moyen pour nous d'obtenir des informations via $_SESSION (vous pouvez même obtenir une erreur de variable non définie). Parce que les cookies de Laravel sont cryptés. Par conséquent, nous ne pouvons pas utiliser le propre cookie de Laravel pour obtenir des informations sur les cookies. Les idées d'implémentation spécifiques sont :
1 Obtenez le cookie natif.
2 Connectez PHPREDIS_SESSION à la clé du formulaire
3 Utilisez redis pour obtenir directement la valeur stockée dans la clé
... use Illuminate\Support\Facades\Redis; ... $cookie = $_COOKIE['PHPSESSID']; $session = Redis::get('PHPREDIS_SESSION:' . $cookie);Cette $session est la valeur de session dans le système thinkphp. Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois ! Recommandations associées :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!