Bonjour,

Je suis debutant avec Laravel, j'ai crée un systeme d'inscription et il marche bien avec le cryptage de mot de passe mais le probleme c'est dans l'Authentication pour creer un session pour un utilisateur. Voila mon code :

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Requests\StoreUser;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;

class RegisterController extends Controller
{

    /**
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     * 
     */
    public function register()
    {
        return view('Auth/register');
    }

    /**
     * @param StoreUser $request
     * @return string
     */
    public function store(StoreUser $request)
    {
        $user = new User();

        $data = $request->only(['nom', 'prenom', 'email']);
        $data['password'] = bcrypt($request->password);

        $user->fill($data);

        $user->save();

        // Cette ligne suivante n'a aucun message d'erreur aucun effet sur l'application 
        Auth::login($user);

        return redirect('/');
    }
}

J'ai pas d'erreurs pour comprendre de quoi il s'agit je suis bloqué.

Le code de l'Entity User

<?php

namespace App;

use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;

class User extends Model implements Authenticatable
{
    protected $fillable = [
        'nom', 'prenom', 'email', 'password', 'created_at', 'updated_at'
    ];

    /**
     * Get the name of the unique identifier for the user.
     *
     * @return string
     */
    public
    function getAuthIdentifierName()
    {
        return 'email';
    }

    /**
     * Get the unique identifier for the user.
     *
     * @return mixed
     */
    public
    function getAuthIdentifier()
    {
        return $this->getAttribute('email');
    }

    /**
     * Get the password for the user.
     *
     * @return string
     */
    public
    function getAuthPassword()
    {
        return $this->getAttribute('password');
    }

    /**
     * Get the token value for the "remember me" session.
     *
     * @return string
     */
    public
    function getRememberToken()
    {
        return null;
    }

    /**
     * Set the token value for the "remember me" session.
     *
     * @param  string $value
     * @return void
     */
    public
    function setRememberToken($value)
    {
        return null;
    }

    /**
     * Get the column name for the "remember me" token.
     *
     * @return string
     */
    public
    function getRememberTokenName()
    {
        return null;
    }
}

c'est la que je crois que j'ai mis un erreur mais l'application est silencieuse.
Je veut une solution ou remarque sur mon code.

Et merci d'avance

11 réponses


Bonjour,

Lorsque tu créé ton utilisateur, tu es déjà connecté à une session non ?

Bonjour,
Non car j'ai debugge la session elle est null

Bonjour,

Sinon, une autre méthode est de le faire via attempt :

Auth::attempt($request->only(['email', 'password']));

Normalement ça devrait fonctionner

Ou sinon peut-être :

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

Mais je ne vois pas le soucis avec le Auth::login :/

bonjour,
Ca ne marche pas.
J'ai crée un autre projet mais j'ai utilisé l'authentication fournit par défaut elle marche tres bien. le soucis c'est je veut creer le systeme manuallement.
j'ai essayé tout les méthode sans resultat.
par rapport la configuration dans config/auth.php, j'ai laissé ça par defaut je crois que je devrai adapté ça non.
aussi j'ai essayé de connecté par une fonction login mais sans resultat le meme probleme.
le grand probleme c'est que je ne vois pas des erreurs c'est bizard :(

en tous cas merci a vous .

Hello,

Vérifie que t'es routes sont bien dans le middleware 'web', et que dans ton "HTTP/Kernel.php" le middleware " \Illuminate\Session\Middleware\StartSession::class" a bien été chargé dans ce dernier.

Salut,
la class est charger par defaut dans web mais je sais pas pour quoi ne marche pas j'ai laissé ce projet a côte mais je vais trouvé le couci ;)

pour le moment je cherche, teste mais sans resultat.

en tous cas merci.

InvalidArgumentException in UrlGenerator.php line 304:
Route [login] not defined.
j ai une prblm au niveau du route et j c pa quoi et comment faire

Salu,
Montrer un extrait de code des routes .


Route::get('salut', function () {
    return 'salut les gens';
});
Route::get('salut/{slug}-{id}', ['as'=>'salut' ,function ($slug,$id) {
    return "lien: /salut/slug-$id";
}])
->where('name', '[a-z 0-9\-]*')
->where('id', '[0-9]*');
Route::get('/', function () {
    return view('welcome');

salut,
donc tu n'as pas defini une route pour le login .
example :

Route::get('/login', 'AuthController@login')->name('login')

je voix dans ton code tu utilise des closure pas des controller c'est mieux d'utiliser des controllers pour separer la logique.