2
votes

Laravel Auth :: id () renvoie null après la connexion

J'ai un formulaire de connexion pour accéder à ma page Web. Dans mon ordinateur local, tout fonctionne bien. Mais maintenant, je télécharge mon projet sur mon serveur et lorsque je me connecte, la directive @auth () est nulle. J'ai mis dans mon contrôleur ceci: dd (Auth :: id ()); et dans mon serveur local renvoie un identifiant mais dans le serveur de production renvoie nul ...

dans web.php j'ai ce code:

Route::group(['middleware' => 'role:admin' OR 'role:user'], function () {
    Route::get('/users/inicio', function(){         
    dd(Auth::id());
    return view('frontend.dashboardUser');});   
});

Ce retour nul p>

Pouvez-vous m'aider? Merci


2 commentaires

utilisez-vous l'hébergement mutualisé? dans l'hébergement mutualisé, cela peut être un problème avec le boîtier. Dans l'environnement local, laravel le fait automatiquement, mais si vous utilisez l'hébergement partagé, vous devez uniformiser la dénomination.


Oui, je suis dans un hébergement partagé. Comment puis-je faire "vous devez faire l'uniforme de dénomination"?


3 Réponses :


0
votes

Je pense qu'il pourrait y avoir un problème de session, il se peut que l'état de la session ne soit pas maintenu.

Ma suggestion:

Essayez echo session_id () plusieurs fois, si chaque fois qu'un identifiant différent est généré, il y aura un problème avec la session sur le serveur sinon pas.


1 commentaires

J'ai mis dans mon contrôleur de fonction: dd (Session :: all ()); et si je recharge cette page, mon _token change .... Pouvez-vous m'aider? Je vous remercie



0
votes

Avez-vous enregistré un nouvel utilisateur après avoir transmis votre code à la production? Je veux dire, vous êtes-vous connecté en utilisant un utilisateur existant en production? Je pense que votre production et votre base de données locale sont différentes et que l'utilisateur qui existe en local n'existe pas sur la base de données de production.

Enregistrez un nouvel utilisateur et connectez-vous en tant que nouvel utilisateur, puis essayez d'accéder à l'itinéraire pour voir si vous obtenez l'identifiant d'authentification.


0 commentaires

0
votes

Pour des raisons de sécurité, vous ne pouvez pas accéder à l'utilisateur de connexion ou à toute autre session dans le fichier web.php ainsi qu'à un constructeur de la classe.

Pour archiver cela, vous pouvez utiliser un middleware comme ceci:

public function __construct() {

    $this->middleware(function (Request $request, $next) {
        if (!\Auth::check()) {
            return redirect('/login');
        }
        $this->userId = \Auth::id(); // you can access user id here

        return $next($request);
    });
}

Ceci link peut vous aider davantage. Bonne chance !!!


0 commentaires