2016-11-25 5 views
3

Richten Sie Laravels 5.3 Passport mit Hilfe von Landstreicher/Gehöft ein. Im Anschluss an entlang, bis ich Password Grant TokensLaravel 5.3 Passwortzugriffstoken [Benutzeranmeldeinformationen nicht korrekt]

Hier erreichen fand ich diesen GuzzleHttp Schnipsel Beitrag /oath/token zu machen:

Route::get('/api_grant', function(){ 
    $http = new GuzzleHttp\Client; 

    $response = $http->post('http://mavrik-cms.io/oauth/token', [ 
     'form_params' => [ 
      'grant_type' => 'password', 
      'client_id' => '6', 
      'client_secret' => 'BBlhjUlGsbde5zQ3LBHAr6inJoQVFOMIZlR1RFUI', 
      'username' => '[email protected]', 
      'password' => 'secret', 
      'scope' => '', 
     ], 
    ]); 

    return json_decode((string) $response->getBody(), true); 
}); 

Obwohl ich habe alle erforderlichen und richtigen Informationen gesendet ich weiterhin erhalten: (Anmerkung: Im den Nur Benutzer, so dass meine E-Mail-Adresse und Dummy-Passwort und der Client korrekt mit meiner Benutzer-ID in der oauth-Client-Tabelle verbunden ist und password_client auf 1) gesetzt ist;

{"error":"invalid_credentials","message":"The user credentials were incorrect."} 

enter image description here

Ive jetzt für ein paar Stunden mit diesem herum Messing. Ich habe alle möglichen Kombinationen von Benutzer und Passwort ausprobiert (E-Mail vom Benutzermodell als Benutzername, Benutzer vom Benutzermodell als Benutzername, Passwort im Benutzermodell als Passwort, etc ..).

+0

Ich lief in das gleiche Problem und es endete, dass ich vergessen hatte, das Passwort bei der Erstellung des Benutzers zu verschlüsseln –

Antwort

0

Sie können etwas wie oder bcrypt('your_password') verwenden, beste! ;)

1

Ich hatte das gleiche Problem und es endete, weil ich ein username Feld in meiner Tabelle für die Authentifizierung anstelle des Standards email verwende.

Um dieses Verhalten unterzubringen, musste ich findForPassport() in meinem beredten Modell User überschreiben. UserRepository von passport standardmäßig email

if (method_exists($model, 'findForPassport')) { 
    $user = (new $model)->findForPassport($username); 
} else { 
    $user = (new $model)->where('email', $username)->first(); 
} 

Nicht sicher, ob das hilft, aber das ist für mich gearbeitet.

public static function findForPassport($username) 
{ 
    return User::where('username', $username)->first(); 
} 
0

Ich war auch vor dem gleichen Problem, aber ich habe es durch bcrypting das Passwort des Benutzers in der Tabelle gelöst Sie Passwort http://bcrypthashgenerator.apphb.com/ hier online bcrypt und dann das Passwort in der Tabelle gegen den spezifischen Benutzer speichern

Auch müssen Sie E-Mail-ID (Wert der Spalte "E-Mail" in der Tabelle) in Benutzername eingeben Schlüssel in Post-Daten