. */ namespace App\Http\Controllers\Api\Account; use App\AuthToken; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Cookie; class ApiKeyController extends Controller { public function generate(Request $request) { $account = $request->user(); $account->generateApiKey($request); $account->refresh(); Cookie::queue('x-api-key', $account->apiKey->key, config('app.api_key_expiration_minutes')); return $account->apiKey->key; } public function generateFromToken(Request $request, string $token) { $authToken = AuthToken::where('token', $token)->valid()->firstOrFail(); if ($authToken->account) { $authToken->account->generateApiKey($request); $authToken->account->refresh(); Cookie::queue('x-api-key', $authToken->account->apiKey->key, config('app.api_key_expiration_minutes')); $apiKey = $authToken->account->apiKey->key; $authToken->delete(); return response()->json(['api_key' => $apiKey]); } abort(404); } }