json(); } public function authenticate(Request $request) { $bearerToken = null; try { $bearerToken = Helper::getBearerTokenFromRequest($request); if (!$bearerToken) { Log::debug('authenticate: missing bearerToken'); throw new ApiErrorException(ApiError::missingParameter()); } /** @var \App\Models\Service */ $service = Service::getFromBearerToken($bearerToken); } catch (ModelNotFoundException $e) { $bearerToken = Hash::make($bearerToken); Log::debug("authenticate: service not found $bearerToken"); throw new ApiErrorException(ApiError::apiAuthFailed()); } if (!Hash::check($request->bearer_pwd, $service->bearer_pwd)) { Log::debug('authenticate: wrong credentials'); throw new ApiErrorException(ApiError::apiAuthFailed()); } $apiToken = $service->generateApiToken(); $service->saveOrFail(); return response()->json(['api_token' => $apiToken]); } }