TokenGuard
में निर्मित storageKey
फ़ील्ड को संशोधित करने का कोई तरीका नहीं है। इसलिए, आपको अपना Guard
कक्षा बनाने की आवश्यकता होगी जो फ़ील्ड सेट करता है, और Auth
को अपने Guard
कक्षा का उपयोग करने के लिए बताएगा।
सबसे पहले, कक्षा बनाकर शुरू करें जो आधार TokenGuard
कक्षा को बढ़ाता है। इस उदाहरण में, यह app/Services/Auth/MyTokenGuard.php
पर बनाया गया है:
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';
}
}
बार जब आप अपने वर्ग बनाने के बाद आपको Auth
इसके बारे में बताने के लिए की जरूरत है। आप अपने AuthServiceProvider
सेवा प्रदाता पर boot()
विधि में ऐसा कर सकते हैं:
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']);
});
}
और अंत में, आप अपने नए mytoken
गार्ड का उपयोग करने के Auth
बताने के लिए की जरूरत है। यह config/auth.php
कॉन्फ़िगरेशन फ़ाइल में किया जाता है।
'guards' => [
'api' => [
'driver' => 'mytoken',
'provider' => 'users',
],
],
आप इसे क्यों बदलना चाहते हैं? आप मेरी तालिका में – Digitlimit
प्राप्त करने का प्रयास कर रहे हैं, कॉलम का नाम 'api_key' है। इसलिए, मैं लारवेल को 'api_key' कॉलम की तलाश करना चाहता हूं और टोकन की खोज करते समय 'api_token' कॉलम नहीं चाहता हूं। –