Laravel 5 wird InvalidStateException in AbstractProvider.php eingefügt

8

Ich versuche den Login mit Facebook in laravel 5 mit Socialize zu verwenden.

Hier ist mein Routendatei-Code.

%Vor%

Login ist erfolgreich und ich bekomme den Code aber die Zeit von get $provider->user() Ich bekomme den Fehler.

  

InvalidStateException in der AbstractProvider.php Zeile 161

    
Dipesh Shihora 14.04.2015, 13:55
quelle

9 Antworten

10

Ich fühlte mich nicht wohl damit, Code, der einen Fehler signalisierte, zu kommentieren (wie in @Dipesh Shihoras Antwort), also grub ich ein wenig weiter. Ich entdeckte, dass der Fehler (in meinem Fall zumindest) durch ein Problem mit Sitzungen verursacht wurde.

Mein Dev-Server ist gemäß den Anweisungen in dieser Antwort eingerichtet. Grundsätzlich "spoof" ich Google, indem ich eine Rückruf-URL verwende, die wie eine öffentlich zugängliche Adresse aussieht.

Das InvalidStateException -Problem wurde für mich angezeigt, weil ich meine Login-Seite bei http://localhost/login besuchte und auf die Login-Seite von Google umleitete, die mich dann zu http://myapp.example.com/callback zurück brachte. Das Problem ist, dass der Sitzungsschlüssel in einem Cookie gespeichert wird - ursprünglich war es ein Cookie für http://localhost , aber wenn ich auf eine andere URL umgeleitet wurde, war der Cookie (und damit der Sitzungsschlüssel) nicht zugänglich. Daher war die Sitzung state -Wert nach der Aktualisierung nicht vorhanden und die Ausnahme wurde ausgelöst.

Die Lösung? Stellen Sie sicher, dass mein gesamtes Browsen auf dem Dev-Rechner bei http://myapp.example.com und nicht bei http://localhost durchgeführt wurde.

    
Kryten 30.04.2015 18:55
quelle
10
Ссылка

Es funktioniert auf meiner Website, rufen Sie einfach - & gt; stateless (), bevor Benutzer

%Vor%     
Nguyen Phuong 16.06.2016 05:30
quelle
3

Versuchen Sie, die korrekten Werte im Feld 'domain' von config/session.php und im Feld 'url' von config/app.php festzulegen. Dies scheint für mich den Ausschlag gegeben zu haben. Ich habe festgestellt, dass der Wert in session.php ohne http:// sein sollte, während der Wert in app.php mit http:// übereinstimmen sollte.

Ich empfehle Ihnen auch, diesem Leitfaden zu folgen: Ссылка . Es ist sehr hilfreich und klar.

    
Mattias 05.10.2015 16:32
quelle
2
%Vor%

Vielleicht ist das eine bessere temporäre Lösung

    
DamneD 08.06.2015 21:09
quelle
1

Nachdem ich also etwas gegraben habe, war das Problem für mich, dass meine nginx-Konfiguration falsch war und die URL-Parameter (Code und Status) nicht korrekt an die index.php-Datei übergeben wurden und auf diese Weise die Prüfung zwischen dem Zustand von der Sitzung und der Staat von der URL scheiterte. Ich habe mein nginx conf so geändert, dass es so aussieht und es hat gut funktioniert.

%Vor%     
Kimon Moutsakis 30.05.2015 22:08
quelle
1

Für jeden, bei dem dieses Problem auftritt, können Sie den Domain-Wert in config / session.php auf Ihre Domain setzen und alle Cookies in Ihrem Browser entfernen, die sich auf Ihre App-URL beziehen. Sie können auch php artisan cache ausführen: clear und clear-compeated

    
maxdeviper 18.12.2015 13:58
quelle
0

Ich weiß nicht, ob das irgendjemanden hilft, aber meinen Session-Treiber von file auf cookie zu ändern, löschte das InvalidException Problem für mich.

    
Jared Eitnier 07.09.2015 21:04
quelle
0

Sie erhalten diesen Fehler, weil Sie die Einstellungen Ihres sozialen Providers in Ihrer Konfigurationsdatei falsch haben oder Ihre Facebook-App nicht richtig eingerichtet haben.

Besuchen Sie developers.facebook.com und stellen Sie sicher, dass Ihre App-ID und geheimen Schlüssel korrekt sind und auf die richtige URL verweisen. Stellen Sie dann sicher, dass die Datei services.php Ihrer Laravel-App mit der richtigen Weiterleitung, ID und dem geheimen Schlüssel aktualisiert wurde.

    
Richard Torcato 21.09.2015 21:29
quelle
-1

Gehen Sie zu vendor/guzzlehttp/guzzle/src/Client.php

%Vor%

ändern zu

%Vor%     
Kostadin 06.01.2016 14:00
quelle

Tags und Links