3
votes

Laravel Auth se connecter manuellement par identifiant

Je suis nouveau sur laravel et je travaille avec une fonctionnalité où nous insérons des données dans la table utilisateur avec

DB::insert();

Après cela, je obtenir le dernier identifiant avec

$ user_id = DB :: getPdo () -> lastInsertId ();

Maintenant, je veux que l'utilisateur se connecte après l'enregistrement et je J'essaye de

Auth::loginUsingId($user_id);

Mais ça me renvoie faux. J'ai aussi essayé

$user = User::find($user_id);
Auth::login($user);

Il renvoie également null $ user.

Veuillez aider ...


6 commentaires

La table dans laquelle vous stockez votre utilisateur est-elle appelée users ? dans quelles tables faites-vous DB :: insert () et $ user_id = DB :: getPdo () -> lastInsertId () ?


@Mike oui son nom est des utilisateurs.


Quel est le contenu de $ user_id ? et l'utilisateur est-il enregistré dans la table avec le même identifiant?


$ user_id est l'identifiant du dernier identifiant d'insertion dans la table des utilisateurs lors de l'insertion de l'enregistrement, il me renvoie l'identifiant, mais le problème de connexion lorsque je passe cet identifiant est faux


Le [ login ] ( laravel. com / api / 5.7 / Illuminate / Contracts / Auth /… ) n'a pas de valeur de retour. que se passe-t-il si vous videz auth () -> user () après avoir effectué une connexion


son retour nul. Pour vos informations, j'ai également essayé avec les anciens utilisateurs id manuellement comme Auth :: loginUsingId (10) puis sa connexion. Peut-être le problème des champs


3 Réponses :


0
votes

Auth: login renvoie void afin que vous puissiez essayer quelque chose comme ceci pour vérifier si l'utilisateur est connecté ou non:

Auth::login($user);
return [
    'status' => Auth:check()
];

check () détermine si l'utilisateur actuel est authentifié ou non.


1 commentaires

J'ai vérifié dans votre chemin mais ce n'est pas un utilisateur de connexion



3
votes

Utilisateur de connexion:

Auth::check();

vérifier que l'utilisateur actuel est connecté ou non:

Auth::login($user);


0 commentaires

0
votes

Alors, pouvez-vous montrer votre modèle utilisateur?

Dans la documentation Laravel ( https: // laravel.com/docs/5.7/authentication ), vous pouvez voir que votre modèle doit être une implémentation du contrat Illuminate \ Contracts \ Auth \ Authenticatable.

Le basique em> Le modèle utilisateur ressemble à:

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}

et c'est prévu des poux de travail.


0 commentaires