内容へ移動
fl8 Wiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
Dokuwiki.fl8.jp
»
11_php
»
02_framework
»
01_laravel
»
43 Laravel APIトークン名(api_token)を変更
トレース:
11_php:02_framework:01_laravel:43_api_token
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 43 Laravel APIトークン名(api_token)を変更 ====== LaravelでAPIを作成するときに、デフォルトトークン名は、「api_token」です。 Voyagerを利用してて、この環境だとUsersのトークンカラムが「remember_token」になっていた。 そのため、remember_tokenに変更する手順をメモ Voyager 1.2 Laravel 5.8 ===== デフォルトのトークン名 ===== デフォルトのトークン名が記述されている場所は下記です。 <code> vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php: $config['input_key'] ?? 'api_token', vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php: $config['storage_key'] ?? 'api_token', vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php: $inputKey = 'api_token', vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php: $storageKey = 'api_token', </code> ===== カスタムガード作成 ===== <code|app/Services/Auth/MyTokenGuard.php> <?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 \Illuminate\Contracts\Auth\UserProvider $provider * @param \Illuminate\Http\Request $request * @return void */ public function __construct(UserProvider $provider, Request $request) { // 「api_token」から「api_key」にキーを変更する. // inputKey(1つ目のapi_key)が、GET/POSTパラメータから取得するキー. // storageKey(2つ目のapi_key)が、DBのカラム名. parent::__construct($provider, $request, 'remember_token', 'remember_token'); } } </code> ===== カスタムガードをアプリに登録 ===== <code|app/Providers/AuthServiceProvider.php> <?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 = [ // 'App\Model' => 'App\Policies\ModelPolicy', ]; /** * Register any authentication / authorization services. * * @return void */ public function boot() { $this->registerPolicies(); $this->app['auth']->extend('remember_token', function($app, $name, array $config) { return new MyTokenGuard(Auth::createUserProvider($config['provider']), $app['request']); }); // } } </code> ===== app/config/auth.php ===== あとは設定のdriverを修正してあげるだけ <code|app/config/auth.php> 'guards' => [ 'api' => [ 'driver' => 'remember_token', 'provider' => 'users', 'hash' => false, ], </code> {{tag>Laravel}}
11_php/02_framework/01_laravel/43_api_token.txt
· 最終更新: 2020/01/17 13:22 by
matsui
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ