ich benutze Laravel Pass für Auth
in route api.php
Route::get('/todos', function(){
return 'hello';
})->middleware('auth:api');
aber wenn Sie localhost: 8000/api/todos öffnen, sehe ich den folgenden Fehler
InvalidArgumentException
Route [login] not defined.
* @return string
*
* @throws \InvalidArgumentException
*/
public function route($name, $parameters = [], $absolute = true)
{
if (! is_null($route = $this->routes->getByName($name))) {
return $this->toRoute($route, $parameters, $absolute);
}
throw new InvalidArgumentException("Route [{$name}] not defined.");
}
/**
* Get the URL for a given route instance.
*
* @param \Illuminate\Routing\Route $route
* @param mixed $parameters
* @param bool $absolute
* @return string
*
* @throws \Illuminate\Routing\Exceptions\UrlGenerationException
*/
protected function toRoute($route, $parameters, $absolute)
{
return $this->routeUrl()->to(
$route, $this->formatParameters($p
Ich möchte, wenn der Benutzer nicht authentifiziert wurde Keine Seite weiterleiten und nur die Seite anzeigen
Haben Sie die oben angegebene URL direkt in der Browser-Suchleiste eingegeben? Wenn Sie den falschen Weg gewählt haben, weil Sie auch das API-Token mit Ihrer Anforderung eingeben müssen !!
Um zu überprüfen, ob eine Anforderung ein Token enthält oder nicht, erstellen Sie Ihre eigene Middleware.
Befehl zum Erstellen von Middleware
php artisan make:middleware CheckApiToken
https://laravel.com/docs/5.6/middleware
chenage Middleware-Methode zu
public function handle($request, Closure $next)
{
if(!empty(trim($request->input('api_token')))){
$is_exists = User::where('id' , Auth::guard('api')->id())->exists();
if($is_exists){
return $next($request);
}
}
return response()->json('Invalid Token');
}
Wie dieses Ihre URL sollte so sein
http: // localhost: 8000/api/todos? api_token = API_TOKEN_HERE
Verwenden Sie Postman und setzen Sie den Header Accept: application/json. Andernfalls würde Laravel Passport niemals wissen, dass es sich um einen API-Client handelt, und auf eine/login-Seite für das Web umleiten.
Sie müssen außerdem einen weiteren Header hinzufügen. Key: Accept und value: application/json
Sie müssen außerdem einen weiteren Header-Schlüssel hinzufügen: X-Requested-With und Wert: XMLHttpRequest