API 認証と認可に Laravel を使用する: 機密データと操作の保護
概要:
API (アプリケーション プログラミング インターフェイス) は、最新の Web アプリケーションの重要な部分です。開発コンポーネント。さまざまなシステム間でのデータ対話や関数呼び出しが可能になります。 API アプリケーションでは、データのセキュリティが非常に重要です。 Laravel は、強力な API 認証および認可機能を提供する人気の PHP フレームワークであり、機密データと操作を保護し、不正アクセスを防止するのに役立ちます。
1. Laravel のインストールと設定
まず、composer を使用して Laravel をインストールする必要があります。コマンドラインで次のコマンドを実行します:
composer global require laravel/installer
インストールが完了したら、次のコマンドを使用して新しい Laravel プロジェクトを作成できます:
laravel new api-auth
プロジェクトが存在するディレクトリを入力します:
cd api-auth
次に、ユーザー データを暗号化するためのキーを生成する必要があります。次のコマンドを実行します。
php artisan key:generate
2. API 認証および認可関連ファイルを作成します。
php artisan make:model User -m
このコマンドは、ユーザー モデルと対応するデータベース移行ファイルを生成します。
php artisan make:controller AuthController
routes/ を編集します。 API 関連のルートを定義する api.php
ファイル: Route::post('login', 'AuthController@login'); Route::post('register', 'AuthController@register'); Route::middleware('auth:api')->group(function () { Route::get('user', 'AuthController@user'); Route::post('logout', 'AuthController@logout'); });
上記のルートは、ユーザーのログイン、登録、ユーザー情報の取得、ログアウトなどのインターフェイスを定義します。
app/Http/Controllers/AuthController.php
ファイルを開き、次のコードを書き込みます。上記のコードでは、ユーザー登録、ログイン、ユーザー情報の取得、ログアウトの操作を定義しています。 Guard と Provider の構成:
config/auth.php を見つけます。および
providers 構成項目。次の例に従って構成します。
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppUser;
use IlluminateSupportFacadesAuth;
class AuthController extends Controller
{
public function register(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max:55',
'email' => 'email|required|unique:users',
'password' => 'required|confirmed'
]);
$validatedData['password'] = bcrypt($request->password);
$user = User::create($validatedData);
$accessToken = $user->createToken('authToken')->accessToken;
return response(['user' => $user, 'access_token' => $accessToken]);
}
public function login(Request $request)
{
$loginData = $request->validate([
'email' => 'email|required',
'password' => 'required'
]);
if (!Auth::attempt($loginData)) {
return response(['message' => 'Invalid credentials']);
}
$accessToken = Auth::user()->createToken('authToken')->accessToken;
return response(['user' => Auth::user(), 'access_token' => $accessToken]);
}
public function user()
{
return response(['user' => Auth::user()]);
}
public function logout(Request $request)
{
$request->user()->token()->revoke();
return response(['message' => 'Successfully logged out']);
}
}</pre><div class="contentsignin">ログイン後にコピー</div></div>
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users' ], 'api' => [ 'driver' => 'passport', 'provider' => 'users', ] ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => AppUser::class ] ],
php artisan migrate
パーソナル アクセス クライアントの作成: 次のコマンドを実行してパーソナル アクセス クライアントを作成します:
php artisan passport:install
新しいユーザーを登録します:
http://localhost:8000/api/register<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>php artisan passport:client --personal</pre><div class="contentsignin">ログイン後にコピー</div></div>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>{
"name": "John Doe",
"email": "johndoe@example.com",
"password": "password",
"password_confirmation": "password"
}</pre><div class="contentsignin">ログイン後にコピー</div></div>ユーザー情報の取得: GET リクエストを使用しますhttp://localhost:8000/api/user<ol start="3"> にリクエストを送信し、ヘッダーに <li>Authorization: Bearer {access_token}<code> を追加します。ここで、
{access_token} はログイン時に返されるアクセストークン。
ユーザーをログアウトします: POST リクエストを使用してリクエストを
http://localhost:8000/api/logout
上記で、Laravel の API 認証および認可機能を通じて機密データと操作を保護することに成功しました。ユーザーモデル、コントローラー、ルーティング、Passportが提供する機能を利用することで、APIの認証・認可制御を簡単に実現できます。
以上がLaravel による API 認証と認可: 機密データと操作の保護の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。