web.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. declare(strict_types=1);
  3. use App\Http\Controllers\Auth\SocialiteController;
  4. use App\Http\Controllers\Home\ArticleController;
  5. use App\Http\Controllers\Home\CategoryController;
  6. use App\Http\Controllers\Home\CommentController;
  7. use App\Http\Controllers\Home\FeedController;
  8. use App\Http\Controllers\Home\LikeController;
  9. use App\Http\Controllers\Home\NoteController;
  10. use App\Http\Controllers\Home\OpenSourceController;
  11. use App\Http\Controllers\Home\SiteController;
  12. use App\Http\Controllers\Home\SocialiteUserController;
  13. use App\Http\Controllers\Home\TagController;
  14. // Home 模块
  15. Route::name('home.')->group(function () {
  16. Route::name('articles.')->group(function () {
  17. Route::get('/', [ArticleController::class, 'index'])->name('index');
  18. Route::get('articles/{article}/{slug?}', [ArticleController::class, 'show'])->name('show');
  19. Route::get('search', [ArticleController::class, 'search'])->name('search');
  20. });
  21. Route::get('categories/{category}/{slug?}', [CategoryController::class, 'show'])->name('categories.show');
  22. Route::get('tags/{tag}/{slug?}', [TagController::class, 'show'])->name('tags.show');
  23. Route::get('notes', [NoteController::class, 'index'])->name('notes.index');
  24. Route::get('openSources', [OpenSourceController::class, 'index'])->name('openSources.index');
  25. Route::get('feeds', [FeedController::class, 'index'])->name('feeds.index');
  26. Route::prefix('sites')->name('sites.')->group(function () {
  27. Route::get('/', [SiteController::class, 'index'])->name('index');
  28. Route::post('/', [SiteController::class, 'store'])->name('store')->middleware('auth:socialite', 'clean.xss');
  29. });
  30. Route::middleware('auth:socialite')->group(function () {
  31. Route::get('socialiteUsers/{socialiteUser}', [SocialiteUserController::class, 'show'])->name('socialiteUsers.show');
  32. Route::post('comments', [CommentController::class, 'store'])->name('comments.store');
  33. Route::prefix('likes')->name('likes.')->group(function () {
  34. Route::post('store', [LikeController::class, 'store'])->name('store');
  35. Route::delete('destroy', [LikeController::class, 'destroy'])->name('destroy');
  36. });
  37. });
  38. });
  39. // auth
  40. Route::prefix('auth')->as('auth.')->group(function () {
  41. // Socialite
  42. Route::prefix('socialite')->as('socialite.')->group(function () {
  43. // 重定向
  44. Route::get('redirectToProvider/{service}', [SocialiteController::class, 'redirectToProvider'])->name('redirectToProvider');
  45. // 获取用户资料并登录
  46. Route::get('handleProviderCallback/{service}', [SocialiteController::class, 'handleProviderCallback'])->name('handleProviderCallback');
  47. // 退出登录
  48. Route::post('logout', [SocialiteController::class, 'logout'])->name('logout');
  49. });
  50. });