Ich verwende die manuelle Anmeldefunktion in Laravel 5.5. Eingeloggt bleiben. und überprüfe alle (5 relevanten) Stack-Links und finde keinen Hinweis darauf.
Erfolg ist Sobald Benutzer registriert sind, melden Sie sich automatisch an diesem Benutzer.
Fehler ist
"Tippfehler: Argument 1, das an Illuminate\Auth\SessionGuard :: login () übergeben wird, muss die Schnittstelle Illuminate\Contracts\Auth\Authenticatable implementieren. Die angegebene Zeichenfolge wird in Server/Anbieter/Laravel/Framework/Src/Illuminate/Auth/AuthManager aufgerufen. PHP auf der Linie 294 ◀ "
if ($validator->fails()) {
// $messages = $validator->messages();
return Redirect::to('register')
->withErrors($validator)
->withInput();
} else {
$email = Input::get('email');
$user = new user;
$user->name = Input::get('name');
$user->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->save();
// $userMail = $user->find($email);
$userMail = User::where('email','=',$email)->first();
Auth::login($userMail->email, TRUE);
mache ich etwas falsch? Bitte führen Sie mich.
Für die Anmeldefunktion ist ein Benutzer vom Typ Authenticatable
erforderlich, und Sie haben gerade email
angegeben. Dies ist eine Zeichenfolge, aufgrund derer Sie diese Fehlermeldung erhalten. Verwenden Sie entweder Auth::loginUsingId($id);
$user = User::where('email','=',$email)->first();
Auth::loginUsingId($user->id, TRUE);
Oder nur
Auth::login($user);
An Stelle von
Auth :: login ($ userMail-> email, TRUE);
Benutze das
Auth :: login ($ user-> id, TRUE);
$email = $request->email;
$password = md5($request->password);
if ($request->remember_me == 1) {
$cookie = Cookie::queue('username', $email, time() + 31536000);
} else {
$cookie = Cookie::queue('username', '', time() - 100);
}
$user = DB::table('tbl_adminuser')->where('email_address', $email)->where('password', $password)->first();
$request->session()->put('userData', $user);
=> Sie können sich wie folgt manuell in laravel einloggen
Die Funktion Auth::login()
erwartet ein authentifizierbares Objekt. Wenn Sie sich nicht mit der Klasse User
angelegt haben, müssen Sie diese weitergeben.
Auth::login($user, true);
Referenz: https://laravel.com/api/5.5/Illuminate/Auth/SessionGuard.html#method_login
Benutze einfach Auth::login($userMail, TRUE);
anstelle von Auth::login($userMail->email, TRUE);
Weitere Informationen finden Sie unter: https://laravel.com/api/5.5/Illuminate/Auth/SessionGuard.html#method_login
Sie müssen den $user
so übergeben/zurücksenden
if ($validator->fails()) {
// $messages = $validator->messages();
return Redirect::to('register')
->withErrors($validator)
->withInput();
} else {
$email = Input::get('email');
$user = new user;
$user->name = Input::get('name');
$user->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->save();
//
Auth::login($user);
OR
Auth::loginUsingId($user->id, TRUE);