Sanctum 與 Next.js 的認證

小李世界發表於2022-09-20

Laravel 官方有一個 Example,laravel-auth-api 和 breeze-next,但是沒有寫如何操作,所以我大概比對了下,復刻到已有的專案,並把步驟記錄起來。

路由

複製 routes/auth.php 到 web.php

session 表

  1. .env 中,SESSION_DRIVER=file 改為 database

  2. 複製 database/migrations/2022_09_03_155542_create_sessions_table.php

  3. 執行遷移

認證方法

  1. config/auth.php 中的 defaults guard 由 sanctum 改為 web

  2. 複製

  • app/Http/Controllers/Auth 下的檔案
  • app/Http/Requests/Auth/LoginRequest.php
  1. app/Http/Kernel.php 中的 $routeMiddleware 新增 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,

中介軟體

  1. 複製
  • app/Http/Middleware/Auth 下的檔案
  • app/Http/Middleware/EnsureEmailIsVerified.php
  • app/Http/Middleware/ValidateSignature.php
  1. app/Http/Kernel.php 中的
use  Illuminate\Routing\Middleware\ValidateSignature;
use  Illuminate\Auth\Middleware\EnsureEmailIsVerified;
# 改為
use  App\Http\Middleware\EnsureEmailIsVerified;
use App\Http\Middleware\ValidateSignature;
本作品採用《CC 協議》,轉載必須註明作者和本文連結
無論在現實或是網路中,我都是孤獨的。

相關文章