web-dev-qa-db-fra.com

Laravel 5.7 Auth :: loginUsingId () ne fonctionne pas après la génération du jeton CSRF

J'essaie de me connecter automatiquement à l'étape 2 des étapes d'enregistrement. Après avoir réussi à insérer dans la base de données, j'utilise Auth::loginUsingId($user_id) pour vous connecter automatiquement à l'aide de ajax. Je soumets toujours un jeton CSRF à chaque étape. 

Désormais, le problème est généré après la connexion réussie du jeton CSRF à la connexion et la génération de Auth::user() à l'étape 3.

De plus, avant et après la connexion, CSRF est différent. 

5

Tout d'abord, le jeton csrf est requis lors de l'utilisation d'une requête non-GET. Par conséquent, si l'utilisation de la requête GET semble raisonnable, vous pouvez l'utiliser.

Sinon, à l'étape 2, vous devriez renvoyer un nouveau jeton CSRF, par exemple, comme suit:

Auth::loginUsingId($user_id);

return response()->json(['csrf_token' => csrf_token()];

puis, à l'étape 3, utilisez ce nouveau jeton obtenu à partir de la réponse à l'étape 2.

2
Marcin Nabiałek

Vous pouvez essayer Auth::id() pour obtenir l'identifiant de l'utilisateur actuel.

Si vous voulez tous les détails sur l'utilisateur connecté, vous pouvez utiliser Auth::user().

En Auth::user(), vous pouvez accéder à tous les détails de l'utilisateur.

Vous pouvez également vous connecter à partir du contrôleur en transmettant l'ID utilisateur Auth::login($user_id).

Et si vous utilisez Auth::loginUsingId(), vous devez alors passer l'ID utilisateur et le statut true pour mémoriser les détails.

J'aime: Auth:loginUsingId(user_id, true)


Par exemple :

Obtenir l'id de l'utilisateur: Auth::id()

Obtenir le nom de l'utilisateur: Auth::user()->name

Obtenir le courrier électronique de l'utilisateur: Auth::user()->email

etc....

1
kmjadeja

Vous pouvez essayer cette méthode Auth::User()->id; 

0
Md Majadul Islam

On dirait que ce n’est pas du tout un problème de CSRF . Lorsque vous créez un nouvel utilisateur, Like 

$user = new App\User;
$user->username = $request->username;
...
...
$user->save();

Auth::loginUsingId($user->id);

Ensuite, placez dd(Auth::user()->id); pour vérifier si l’utilisateur est connecté ou non.

Laissez nous savoir.

0
Gammer