Das eingebaute TokenGuard
hat keine Möglichkeit, das Feld storageKey
zu ändern. Deshalb müssen Sie Ihre eigene Guard
Klasse erstellen, die das Feld einstellt, und sagen Auth
Ihre Guard
Klasse zu verwenden.
Beginnen Sie zunächst mit der Erstellung einer neuen Guard
-Klasse, die die Basisklasse TokenGuard
erweitert. In diesem Beispiel ist es bei app/Services/Auth/MyTokenGuard.php
erstellt:
namespace App\Services\Auth;
use Illuminate\Http\Request;
use Illuminate\Auth\TokenGuard;
use Illuminate\Contracts\Auth\UserProvider;
class MyTokenGuard extends TokenGuard
{
public function __construct(UserProvider $provider, Request $request)
{
parent::__construct($provider, $request);
$this->inputKey = 'api_key'; // if you want to rename this, as well
$this->storageKey = 'api_key';
}
}
Sobald Sie Ihre Klasse erstellt haben, müssen Sie Auth
darüber wissen lassen. Sie können dies in der boot()
Methode auf Ihrem AuthServiceProvider
Dienstleisters:
public function boot(GateContract $gate)
{
$this->registerPolicies($gate);
Auth::extend('mytoken', function($app, $name, array $config) {
return new \App\Services\Auth\MyTokenGuard(Auth::createUserProvider($config['provider']), $app['request']);
});
}
Und schließlich müssen Sie Auth
sagen, Ihre neue mytoken
Wache zu verwenden. Dies geschieht in der Konfigurationsdatei config/auth.php
.
'guards' => [
'api' => [
'driver' => 'mytoken',
'provider' => 'users',
],
],
warum tun Sie das ändern wollen? Was versuchen Sie zu erreichen – Digitlimit
in meiner Tabelle ist der Name der Spalte 'api_key'. Daher möchte ich, dass Laravel bei der Suche nach dem Token nach der Spalte "api_key" und nicht nach der Spalte "api_token" sucht. –