初心者のためのラービア7 API認証


最近では、APIは現代のアプリケーションのための最も重要なものになっています.この記事では、Laravel 7を簡単に使用してAPIを作成する方法を見ていきます.
APIが何であるか、なぜ私たちがそれを使うべきかをカバーするつもりはありません.それで、あなたがAPIが何であるかについて、わからないならば?その後、Googleの最初のし、ここに来る.
ポイントに来ましょう
まず最初に、Laravelプロジェクトを作りましょうcomposer create-project --prefer-dist laravel/laravel laravelApi私たちはLaravel Sanctumを使ってトークンを取得しますcomposer require laravel/sanctum設定ファイルと移行を公開するphp artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"今、あなたのアプリケーション/HTTP/カーネルのAPIミドルウェアグループにensureFrontendRequestRerectoryミドルウェアを追加する時が来ました.PHPファイル
use Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful;

'api' => [
    EnsureFrontendRequestsAreStateful::class,
    'throttle:60,1',
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],
データベースの設定.envファイル
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=yourdatabasename
DB_USERNAME=username
DB_PASSWORD=password

移動しましょうphp artisan migrateそれはあなたのアプリケーションのユーザーテーブルを作成する責任があります.
次に、アプリ/ユーザーのユーザーモデルに移動します.PHPとこのコードを追加する
use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;
}
次に、ルートフォルダとオープンAPIに移動します.PHP
そしてこのルートを追加する
Route::post('/register', 'RegisterController@register');
Route::post('/login', 'LoginController@login');
デフォルトのミドルウェアを
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});
コントローラコントローラとlogincontrollerphp artisan make:controller LoginController
<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\ValidationException;

class LoginController extends Controller
{
    public function login(Request $request)
    {
        $request->validate([
            'email' => 'required|email',
            'password' => 'required',
        ]);

        $user = User::where('email', $request->email)->first();

        if (!$user || !Hash::check($request->password, $user->password)) {
            throw ValidationException::withMessages([
                'email' => ['The provided credentials are incorrect.'],
            ]);
        }

        return $user->createToken('x-key')->plainTextToken;
    }

}
php artisan make:controller RegisterController
<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;

class RegisterController extends Controller
{
    public function register(Request $request)
    {
        $request->validate([
            'name' => ['required'],
            'email' => ['required', 'email', 'unique:users'],
            'password' => ['required', 'min:8', 'confirmed']
        ]);

        User::create([
            'name' => $request->name,
            'email' => $request->email,
            'password' => Hash::make($request->password)
        ]);
    }
}
郵便配達人を使って登録しましょう

ログインする

あなたは行く準備ができている、歓声.