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

藏色散人
リリース: 2020-06-06 14:40:55
転載
3611 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート