2017-04-13 7 views
0

Ich benutze Pass für api Authentifizierung und i konfigurieren Auth.php api gaurd zu Pass.
Einige meiner Routen-APIs befinden sich in der auth: api-Gruppe. Ich sende Autorisierungsheader mit Zugangstoken und es überprüfen Benutzer sehr gut.
Aber das Problem ist, dass dieser Mechanismus auch in Route :: post-Methode und \ Auth funktioniert :: Benutzer() -> id Rückkehr Benutzer-ID,Strecke :: Ressource nicht unterstützt Auth: api

aber in Route :: Auth resource \ :: Benutzer() gibt null zurück.

Ich habe alles doppelt überprüft und es scheint Route :: Ressource zu ignorieren "auth: api" Middleware. Ich habe auch Middleware in der __construct Methode meines Resource Controllers getestet. Nichts hat sich geändert. Danke für weitere Hilfe.

Route::group(['middleware' => ['auth:api']],function(){ 
    Route::post('update',['uses'=>'[email protected]']); 
    Route::resource('contacts','C_Contacts',['only'=>['index','store','update','destroy']]); 
}); 
+0

'Route :: Ressource 'tut buchstäblich nichts mehr als die Registrierung der 7 Routen, die Sie manuell registrieren können. – lagbox

Antwort

0

Endlich fand ich eine Lösung. Das Problem war wegen __construct Methode. Der authentifizierte Benutzer wurde noch nicht in der construct-Methode autorisiert (ich weiß nicht warum und wenn jemand es weiß, bitte sag es mir). Also habe ich leider \ Auth :: user in CRUD Funktionen meiner Route eingefügt.

+0

weil die Autorisierung von einer Middleware gehandhabt wird. Der Middleware-Stack wurde nicht ausgeführt, als der Konstruktor für die Controller ausgeführt wurde. Es muss eine Instanz des Controllers erhalten, damit er sehen kann, welche Middleware der Konstruktor registriert hat. – lagbox

+0

Oh, ich kenne diese Sequenz nicht. Danke für das Aufklären. @lagbox – HosSeinM