From a550fd1436e5213c792fd69f97420bb4f6446ec1 Mon Sep 17 00:00:00 2001 From: Elysia Date: Tue, 14 Jan 2025 13:54:26 +0800 Subject: [PATCH] feat: Replace with a random string when the subscription domain contains *&Replace with the user uuid when the subscription domain contains {uuid} --- app/Utils/Helper.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/Utils/Helper.php b/app/Utils/Helper.php index 341df4e..c88272a 100644 --- a/app/Utils/Helper.php +++ b/app/Utils/Helper.php @@ -110,11 +110,20 @@ class Helper public static function getSubscribeUrl(string $token, $subscribeUrl = null) { + $strs = 'QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm'; + $randstr = substr(str_shuffle($strs), 0, rand(4,8)); + $path = route('client.subscribe', ['token' => $token], false); if(!$subscribeUrl){ $subscribeUrls = explode(',', admin_setting('subscribe_url')); $subscribeUrl = \Arr::random($subscribeUrls); $subscribeUrl = self::replaceByPattern($subscribeUrl); + if (strpos($subscribeUrl, "*") !== false) { + $subscribeUrl = str_replace("*", $randstr, $subscribeUrl); + } elseif (strpos($subscribeUrl, '{uuid}') !== false) { + $user = User::where('token', $token)->first(); + $subscribeUrl = str_replace('{uuid}', $user->uuid, $subscribeUrl); + } } return $subscribeUrl ? rtrim($subscribeUrl, '/') . $path : url($path); }