PersonalAccessTokenController.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\StorePersonalAccessTokenRequest;
  5. use App\Http\Resources\PersonalAccessTokenResource;
  6. class PersonalAccessTokenController extends Controller
  7. {
  8. public function index()
  9. {
  10. return PersonalAccessTokenResource::collection(user()->tokens()->select(['id', 'tokenable_id', 'name', 'created_at', 'last_used_at', 'expires_at'])->get());
  11. }
  12. public function store(StorePersonalAccessTokenRequest $request)
  13. {
  14. // day, week, month, year or null
  15. if ($request->expiration) {
  16. $method = "add".ucfirst($request->expiration);
  17. $expiration = now()->{$method}();
  18. } else {
  19. $expiration = null;
  20. }
  21. $token = user()->createToken($request->name, ['*'], $expiration);
  22. return [
  23. 'token' => new PersonalAccessTokenResource($token->accessToken),
  24. 'accessToken' => explode('|', $token->plainTextToken, 2)[1]
  25. ];
  26. }
  27. public function destroy($id)
  28. {
  29. $token = user()->tokens()->findOrFail($id);
  30. $token->delete();
  31. return response('', 204);
  32. }
  33. }