2
0

auth.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. /*
  3. |--------------------------------------------------------------------------
  4. | v3 · auth —— 账号:找回密码、注册、登录
  5. |--------------------------------------------------------------------------
  6. |
  7. | 由 routes/api.php 的 v3 组 require 进来,前缀已在那边加好。
  8. |
  9. */
  10. use App\Http\Controllers\V3\AgentGrantController;
  11. use App\Http\Controllers\V3\EmailCertificationController;
  12. use App\Http\Controllers\V3\InviteController;
  13. use App\Http\Controllers\V3\MeController;
  14. use App\Http\Controllers\V3\PasswordResetController;
  15. use App\Http\Controllers\V3\SessionController;
  16. use App\Http\Controllers\V3\UserController;
  17. use Illuminate\Support\Facades\Route;
  18. // 找回密码。token 是 64 位字母数字,约束挂在每条路由上(prefix 组上的 where 会互相顶掉)。
  19. // 只注册 PATCH 不注册 PUT:完成重置只改密码这一项,不是整体替换。
  20. Route::post('password-resets', [PasswordResetController::class, 'store'])
  21. ->middleware('throttle:password-resets')
  22. ->name('password-resets.store');
  23. Route::get('password-resets/{token}', [PasswordResetController::class, 'show'])
  24. ->where('token', '[A-Za-z0-9]{64}')
  25. ->name('password-resets.show');
  26. Route::patch('password-resets/{token}', [PasswordResetController::class, 'update'])
  27. ->where('token', '[A-Za-z0-9]{64}')
  28. ->middleware('throttle:password-resets')
  29. ->name('password-resets.update');
  30. // 注册:发验证码 → 验证码换 invite(或邀请邮件里自带 invite)→ 凭 invite 建账号
  31. Route::post('email-certifications', [EmailCertificationController::class, 'store'])
  32. ->middleware('throttle:email-certifications')
  33. ->name('email-certifications.store');
  34. Route::post('invites', [InviteController::class, 'store'])
  35. ->middleware('throttle:sign-up')
  36. ->name('invites.store');
  37. Route::get('invites/{invite}', [InviteController::class, 'show'])
  38. ->whereUuid('invite')
  39. ->name('invites.show');
  40. Route::post('users', [UserController::class, 'store'])
  41. ->middleware('throttle:sign-up')
  42. ->name('users.store');
  43. // 登录与「我是谁」。退出登录是客户端丢掉 token,服务端不存会话,所以没有 DELETE sessions
  44. Route::post('sessions', [SessionController::class, 'store'])
  45. ->middleware('throttle:sessions')
  46. ->name('sessions.store');
  47. Route::get('me', [MeController::class, 'show'])
  48. ->middleware('auth.v3')
  49. ->name('me.show');
  50. // agent 协作:人类授权自己名下的 AI 模型代写某个 channel(见 AgentGrantService)
  51. Route::post('agent-grants', [AgentGrantController::class, 'store'])
  52. ->middleware('auth.v3')
  53. ->name('agent-grants.store');