認証
Laravel認証
Section titled “Laravel認証”Sanctum(API認証)
Section titled “Sanctum(API認証)”# Sanctumのインストールcomposer require laravel/sanctumphp artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"php artisan migrate認証コントローラー
Section titled “認証コントローラー”<?phpnamespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;use App\Models\User;use Illuminate\Http\Request;use Illuminate\Support\Facades\Hash;use Illuminate\Validation\ValidationException;
class AuthController extends Controller{ public function register(Request $request) { $validated = $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|min:8|confirmed', ]);
$user = User::create([ 'name' => $validated['name'], 'email' => $validated['email'], 'password' => Hash::make($validated['password']), ]);
$token = $user->createToken('auth-token')->plainTextToken;
return response()->json([ 'user' => $user, 'token' => $token, ], 201); }
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.'], ]); }
$token = $user->createToken('auth-token')->plainTextToken;
return response()->json([ 'user' => $user, 'token' => $token, ]); }
public function logout(Request $request) { $request->user()->currentAccessToken()->delete(); return response()->json(['message' => 'Logged out']); }}ミドルウェア
Section titled “ミドルウェア”<?phpRoute::middleware('auth:sanctum')->group(function () { Route::get('/user', function (Request $request) { return $request->user(); });
Route::apiResource('users', UserController::class);});「Laravelは、開発者としての成長に欠かせない『わざ』である——継続的に学び、実践することで真の力となる。」
技術の習得は、ポケモンのレベルアップと同じ——一歩ずつ、着実に成長していくことが重要です。Laravelをマスターし、より強力な開発者を目指しましょう。