Argument 1 an Illuminate \ Auth \ Guard :: übergeben: login () muss die Schnittstelle Illuminate \ Auth \ UserInterface, null open übergeben:

8

Ich habe eine Facebook-Anmeldung, die ich mit OAuth2 ausführe, und dann verwende ich das eingebaute Authentifizierungssystem von Laravel 4, um den Benutzer beim erneuten Besuch wieder einzuloggen. Für die meisten Benutzer sehe ich keine Probleme mit dem, was ich habe, aber für einen Benutzer sieht er den folgenden Fehler bei der Anmeldung:

%Vor%

Hier ist der relevante Login / Authentifizierungscode im Controller:

%Vor%

Dies ist mein Code in dem Modell für die Tabelle, die ich verwende, um Benutzerinformationen, "Fans" genannt, zu behalten:

%Vor%

Das ist sehr verwirrend, weil diese Anmeldung für alle anderen Profile funktioniert, die ich ausprobiert habe. Es ist nur mit dem Profil dieses Freundes, dass es diesen Fehler wirft. Ich werde auch hinzufügen, dass bei der Anmeldung (oder Wiederholungen) mehrere Einträge für diesen Benutzer in der Datenbank / Tabelle erstellt werden. Dieses Authentifizierungssystem soll eingerichtet werden, genau dies zu verhindern. Gibt es etwas, das ich vermisse?

    
user1072337 26.09.2013, 22:38
quelle

6 Antworten

4

Versuchen Sie, Ihren Code umzuformen:

%Vor%     
maxim.u 29.09.2013 21:05
quelle
3

In der Methode create () im LoginController müssen Sie den $ user zurückgeben das hat bei mir funktioniert.

%Vor%     
TheAngelM97 04.09.2017 12:45
quelle
2

Einfache Frage und die Antwort:
Erweitert Ihre Fan -Klasse die User -Klasse (oder implementiert UserInterface )?
Wenn nicht, dann ist der einfachste Weg, dies zu beheben,

%Vor%     
Andreyco 27.09.2013 08:05
quelle
0

Anstelle von Auth::login($check); oder Auth::login($new); sollten Sie bestehen,

%Vor%

Die Auth :: login () -Funktion akzeptiert den ersten Parameter als UserInterface-Objekt wie public function login(UserInterface $user, $remember = false) und im Funktionskörper nimmt dies userid wie dieses $id = $user->getAuthIdentifier();

Lesen Sie API Doc hier .

    
devo 27.09.2013 03:30
quelle
0

versuche das. Ich habe mein eigenes gelöst.

%Vor%     
Nagibaba 24.02.2017 11:53
quelle
0

Ich hatte das gleiche Problem und konnte es lösen, indem ich einige Dinge überprüfte:

Argument 1 passed to Illuminate\Auth\Guard::login() must implement interface Illuminate\Auth\UserInterface, null given open:

  • Wie Sie sehen können, bedeutet null given , dass der $user , der Auth::login($user) sein soll, null ist. Überprüfen Sie, ob die Variable gesetzt ist.
  • Fügen Sie keine var_dump() zwischen Auth :: login und final redirect () ein. Es kann die Authentifizierung stoppen.

Hoffe es hilft

    
Broski 06.07.2017 20:20
quelle