api.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. use Illuminate\Http\Request;
  3. use Illuminate\Support\Facades\Route;
  4. use Illuminate\Support\Facades\DB;
  5. use App\Http\Controllers\ApplicationController;
  6. use App\Http\Controllers\API\UserController;
  7. use App\Http\Controllers\TemplateController;
  8. use App\Models\User;
  9. use Illuminate\Support\Facades\Hash;
  10. /*
  11. |--------------------------------------------------------------------------
  12. | API Routes
  13. |--------------------------------------------------------------------------
  14. |
  15. | Here is where you can register API routes for your application. These
  16. | routes are loaded by the RouteServiceProvider within a group which
  17. | is assigned the "api" middleware group. Enjoy building your API!
  18. |
  19. */
  20. Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
  21. $user = $request->user();
  22. $islogin = $user->tokenCan('update');
  23. $test = $islogin ? 'true' : 'false';
  24. return $user;
  25. });
  26. Route::post('/login', function (Request $request) {
  27. $data = $request->validate([
  28. 'account' => 'required',
  29. 'password' => 'required'
  30. ]);
  31. $user = User::where('account', $request->account)->first();
  32. if (!$user || !Hash::check($request->password, $user->password)) {
  33. return response([
  34. 'message' => ['These credentials do not match our records.']
  35. ], 404);
  36. }
  37. $token = $user->createToken('test-token', [$user->role])->plainTextToken;
  38. $response = [
  39. 'user' => JSON_ENCODE($user, JSON_UNESCAPED_UNICODE),
  40. 'token' => $token,
  41. ];
  42. return response($response, 201);
  43. });
  44. Route::post('/logout', function (Request $request) {
  45. $user = $request->user();
  46. $user->tokens()->delete();
  47. return $user;
  48. })->middleware(['auth:sanctum']);
  49. Route::post('/refresh', function (Request $request) {
  50. $user = $request->user();
  51. $user->tokens()->delete();
  52. $token = $user->createToken('test-token', ['uploader', 'tester'])->plainTextToken;
  53. $response = [
  54. 'user' => $user,
  55. 'token' => $token,
  56. ];
  57. return response($response, 201);
  58. })->middleware(['auth:sanctum']);
  59. /* Template API */
  60. Route::post('/index', [TemplateController::class, 'index']);
  61. Route::middleware('auth:sanctum')->group(function () {
  62. });
  63. Route::middleware(['auth:sanctum', 'abilities:Admin'])->group(function () {
  64. });