このページの2つのバージョン間の差分を表示します。
— | 11_php:02_framework:01_laravel:43_api_token [2020/01/17 13:22] (現在) – 作成 matsui | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== 43 Laravel APIトークン名(api_token)を変更 ====== | ||
+ | LaravelでAPIを作成するときに、デフォルトトークン名は、「api_token」です。 | ||
+ | |||
+ | Voyagerを利用してて、この環境だとUsersのトークンカラムが「remember_token」になっていた。 | ||
+ | そのため、remember_tokenに変更する手順をメモ | ||
+ | |||
+ | Voyager 1.2 | ||
+ | Laravel 5.8 | ||
+ | |||
+ | |||
+ | ===== デフォルトのトークン名 ===== | ||
+ | |||
+ | デフォルトのトークン名が記述されている場所は下記です。 | ||
+ | < | ||
+ | vendor/ | ||
+ | vendor/ | ||
+ | vendor/ | ||
+ | vendor/ | ||
+ | </ | ||
+ | |||
+ | ===== カスタムガード作成 ===== | ||
+ | < | ||
+ | <?php | ||
+ | namespace App\Services\Auth; | ||
+ | |||
+ | use Illuminate\Auth\TokenGuard; | ||
+ | use Illuminate\Contracts\Auth\UserProvider; | ||
+ | use Illuminate\Http\Request; | ||
+ | use Illuminate\Support\Carbon; | ||
+ | use Illuminate\Support\Facades\Log; | ||
+ | |||
+ | class MyTokenGuard extends TokenGuard { | ||
+ | |||
+ | /** | ||
+ | * Create a new authentication guard. | ||
+ | * | ||
+ | * @param | ||
+ | * @param | ||
+ | * @return void | ||
+ | */ | ||
+ | public function __construct(UserProvider $provider, Request $request) | ||
+ | { | ||
+ | // 「api_token」から「api_key」にキーを変更する. | ||
+ | // inputKey(1つ目のapi_key)が、GET/ | ||
+ | // storageKey(2つ目のapi_key)が、DBのカラム名. | ||
+ | parent:: | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== カスタムガードをアプリに登録 ===== | ||
+ | |||
+ | < | ||
+ | <?php | ||
+ | |||
+ | namespace App\Providers; | ||
+ | |||
+ | use App\Services\Auth\MyTokenGuard; | ||
+ | use Illuminate\Support\Facades\Gate; | ||
+ | use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; | ||
+ | use Illuminate\Support\Facades\Auth; | ||
+ | |||
+ | class AuthServiceProvider extends ServiceProvider | ||
+ | { | ||
+ | /** | ||
+ | * The policy mappings for the application. | ||
+ | * | ||
+ | * @var array | ||
+ | */ | ||
+ | protected $policies = [ | ||
+ | // ' | ||
+ | ]; | ||
+ | |||
+ | /** | ||
+ | * Register any authentication / authorization services. | ||
+ | * | ||
+ | * @return void | ||
+ | */ | ||
+ | public function boot() | ||
+ | { | ||
+ | $this-> | ||
+ | |||
+ | $this-> | ||
+ | return new MyTokenGuard(Auth:: | ||
+ | }); | ||
+ | // | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== app/ | ||
+ | |||
+ | あとは設定のdriverを修正してあげるだけ | ||
+ | |||
+ | < | ||
+ | ' | ||
+ | |||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ], | ||
+ | </ | ||
+ | {{tag> |