ホームページ >PHPフレームワーク >Laravel >Laravel が ApiToken を使用してリクエストを認証する方法

Laravel が ApiToken を使用してリクエストを認証する方法

藏色散人
藏色散人転載
2020-06-06 14:40:553644ブラウズ

Laravel 入門 の次のチュートリアルコラムでは、Laravel で ApiToken 認証リクエストを使用する方法を紹介します。

Laravel が ApiToken を使用してリクエストを認証する方法

1.database/migrations/2014_10_12_000000_create_users_table.php 移行ファイルを開きます。ユーザー テーブルの構造を変更する必要があります。

2. api_token フィールドを追加します。つまり、トークンがデータベースに保存されます。適切な場所に、行

$table->string('api_token', 60)->unique();

3 を追加します。データベースを構成し、php 職人の移行コマンドを通じてユーザー テーブルを生成します

4. api_token フィールドが 123456 に設定されている限り、ユーザー テーブルでレコードを自由に追加します。この方法でユーザーを生成し、後でログインするためにトークン値 123456 を使用できます。 .

5. ルーティング ファイル Routes.php に戻り、その中にテスト ルートを追加し、laravel ミドルウェアで保護します。

Route::group(['middleware' => ['auth.api']], function () { 
  Route::get('/t', function () {
      return 'ok';
  });
});

ここでは、auth.api ミドルウェアが使用されており、ミドルウェア定義 以下の図を入力します:

Laravel が ApiToken を使用してリクエストを認証する方法

Middleware ファイルに WebToken.php を作成し、Kernel.php ファイルにミドルウェアを登録します

'auth.api' => \App\Http\Middleware\webToken::class,

6作成したばかりの webToken ミドルウェア コードを開きます。

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class webToken
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Auth::guard(&#39;api&#39;)->guest()) {
            return response()->json([&#39;code&#39; => 401,&#39;msg&#39; => &#39;未设置token&#39;]);
        }
        return $next($request);
    }
}

コード内の Auth::guard('api') の API は、config フォルダー内の auth.php ファイルです。

Laravel が ApiToken を使用してリクエストを認証する方法

Laravel が ApiToken を使用してリクエストを認証する方法

7. 上記の変更を行った後、URL パス /t を使用してサーバーへのリクエストを直接開始すると、サーバーは 401 エラーを返し、 'トークンが設定されていません' このようなメッセージは、前に handle() メソッドで設定したものです。つまり、/t は認証ミドルウェアによって保護されています。リクエストがこのミドルウェアを正常に通過するようにしたい場合は、次のように指定する必要があります。トークン .

8。以前にユーザー テーブルに api_token 123456 のデータを追加したため、サーバーから /t を再度リクエストしますが、今回は api_token (

…/t?api_token=123456
) を追加します。

通常の状況では、サーバーは「ok」を返します。これは、認証ミドルウェアがこのリクエストの通過を許可することを意味します。しかし、123456 を他の値に変更すると、このリクエストは認証ミドルウェアを通過できなくなります。

さらにlaravelフレームワークの技術記事については、

laravelチュートリアルをご覧ください。

以上がLaravel が ApiToken を使用してリクエストを認証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。