2017-09-10 1 views
0

Ich versuche Pass mit dem oauth zu verwenden/autorisieren, um Web-Anwendung zu ermöglichen, den Code zu erhalten und fordern Token später, aber ich erhalte die StörungLaravel Pass oauth/autorisieren Fehler

Strecke [login] nicht definiert

Unten ist mein Code.

Client-Code

// First route that user visits on consumer app 
Route::get('/', function() { 
    // Build the query parameter string to pass auth information to our request 
    $query = http_build_query([ 
     'client_id' => 3, 
     //'client_secret' => 'MtkEmBL0f0Bf4LcEPcOBUS0wLHvF5xqqchhCpaTH', 
     'redirect_uri' => 'http://client.app:8082/callback', 
     'response_type' => 'code', 
     'scope' => '' 
    ]); 

    // Redirect the user to the OAuth authorization page 
    return redirect('http://server.app:8082/oauth/authorize?' . $query); 
}); 


// Route that user is forwarded back to after approving on server 
Route::get('/callback', function (Request $request) { 
    return 'test 2'; 
    $http = new GuzzleHttp\Client; 

    $response = $http->post('http://server.app:8082/oauth/token', [ 
     'form_params' => [ 
      'grant_type' => 'authorization_code', 
      'client_id' => 3, // from admin panel above 
      'client_secret' => 'MtkEmBL0f0Bf4LcEPcOBUS0wLHvF5xqqchhCpaTH', // from admin panel above 
      'redirect_uri' => 'http://client.app:8082/callback', 
      'code' => $request->code // Get code from the callback 
     ] 
    ]); 

    // echo the access token; normally we would save this in the DB 
    return json_decode((string) $response->getBody(), true)['access_token']; 
}); 

oauth/authorize request error

oauth/authorize request error

+0

Wo Sie Auth Routen definieren Sie? –

+0

Hallo shukshin! Meine Routen werden in der AuthServiceProvider-Datei wie folgt definiert. Passport :: routes(); –

Antwort

0

Vielleicht haben Sie mehr als ein Fehler. Sieht so aus, als hättest du vergessen, allgemeine Auth-Routen zu definieren. Starten von php artisan make:auth oder Auth::routes(). OAuth-Routen haben keine login Route. Der Fehler, den Sie haben, besagt, dass Sie die Route login nicht definiert haben. Es ist tatsächlich in Auth::routes() definiert.

+0

Aber php artisan make: auth wird die Gerüstvorlagen für Benutzeranmeldung, Register und etc erstellen, aber es ist eine API, also sollte es keine HTML-Seiten haben, stattdessen sollte es die Autorisierungsseite zurückziehen, damit der Benutzer die Erlaubnis geben kann für die App, so dass es ein Token nach der Erlaubnis des Benutzers anfordern kann ... –

+0

Fügen Sie einfach 'Auth :: routes()' in Ihre routes-Datei ein, wenn Sie seine views \ layouts nicht benötigen. –

+0

Warten Sie, wenn Sie Passport installiert haben, bedeutet dies, dass sich der Benutzer auf der Website anmelden kann. Wenn der Benutzer angemeldet ist, akzeptiert er eine oAuth-Anfrage von einem anderen Dienst. Wie nehmen Sie an, dass er oauth Anfrage anders annimmt? –

0

hatte ich das gleiche Problem, es scheint, ich nicht vorging der Header in der

Anfrage Accept
Accept:application/json 
+0

Hat es jetzt funktioniert? Groß! –