Warum sollten Kunden Creadentials einem Benutzer zugeordnet sein, in Laravel Pass?
Möchte ich mit Hilfe von Client-Anmeldeinformationen zum authentifizieren von client-Anwendungen den Zugriff auf das API.
Mein problem mit dem erstellen von client-Anmeldeinformationen. Mit php artisan passport:client
verlangt von mir, geben Sie eine Benutzerkennung zuordnen, die client-Benutzer. Ich verstehe es nicht. Warum die client Anwendung verbunden werden, um einen Benutzer?! Oder gibt es einen anderen Weg?
Pass:client-Kommando unterstützt nur das erstellen von Passwort Gewähren Kunden-und personalkostenzuschuss-Client. Ich glaube nicht, dass einer von Ihnen ist, was ich brauche.
Was ich wirklich brauche, ist das erstellen von client-Anmeldeinformationen werden nur dann verwendet die client-Anwendung zu autorisieren sich für den Zugriff auf bestimmte APIs. Wie macht man das?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nehme an, Sie verwenden möchten, Maschine-zu-Maschine-Authentifizierung (keine Benutzer-Interaktionen)
Ich würde empfehlen zu Lesen, durch die docs ein paar mal, um den Dreh raus.
Ich glaube nicht, dass es eine spezifische Methode zum erstellen einer nur-client-Anmeldeinformationen client, Was ich Tue, ist das erstellen eines persönlichen Kunden-dann ändern Sie das Feld für den persönlichen client in der Datenbank
personal_access_client
1
=>0
Können Sie mit der persönlichen client-option, gesehen von der
--help
optionphp artisan passport:client --personal
Ausgabe
Würden Sie brauchen, um ein anderes middleware anderen dann den Standard, denn es ist kein Benutzer anwesend, wenn mit dieser Methode
Definieren von Anmeldeinformationen des Clients middleware an den http-kernel -
Klasse
\App\Http\Kernel
:Middleware auf der route
Klasse
\App\Http\Controllers\ApiTestController
:Vom
php artisan route:list
Anfrage senden
Folgenden die angegebene Anforderung in der Dokumentation auf der client-credentials-grant-Token
Benutze ich Postbote für Einfachheit, senden Sie einfach test-Anforderung mit Postboten (www.getpostman.com)
Autorisierung zu OAuth 2.0, Bild: Briefträger-Authentifizierung
Set access token, URL, client id, client secret und grant-Typ "Client-Anmeldeinformationen', image: Briefträger OAuth-Felder
Postbote schafft ein token und fügt es an der URL oder der Header, in diesem Fall header -
Antwort:
\Laravel\Passport\ClientRepository::create
Oder\Laravel\Passport\Console\ClientCommand::createPersonalClient
Dieuser_id
werden Links null und$personalAccess
auf true gesetzt Sie cloud die Implementierung Ihres eigenen Befehl mitClientRepository
Abhängigkeit injiziert, die in der handle-MethodesetUp
: * Erstellen Sie eine client -assport::client()->fill([...])
* Stellen Sie eine Anfrage an/oauth/token
und speichern von Zugriffstoken in einer Immobilie * Für jede Anfrage, die Sie testen möchten, müssen Sie eineAuthorization
header mit:Bearer {access_token}
Ich wollte kommentieren, aber ich habe nicht genug Ruf doch =p
Könnte Ihnen das Kommando ein name-parameter, die nicht erfordern keine Benutzereingaben. So weit wie Sie bekommen würde, das client secret, über Ihren client ohne manuelle Eingriffe ist, wo die echte Zauberei kommen würde.
Dieser Befehl würde immer noch geben Ihnen:
als erwartet.