diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 6af07674..bdd14e60 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -112,11 +112,7 @@ class UserController extends Controller return json(trans('user.verification.verified'), 1); } - $key = config('app.key'); - $key = starts_with($key, 'base64:') ? base64_decode(substr($key, 7)) : $key; - - $token = hash_hmac('sha256', str_random(40), $key); - + $token = generate_random_token(); $this->user->verification_token = $token; $this->user->save(); diff --git a/app/helpers.php b/app/helpers.php index 524bd0bb..5aa3badf 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -518,3 +518,16 @@ if (! function_exists('can_moderate_texture')) { return ($texture->uploader == $user->uid || $user->isAdmin()); } } + +if (! function_exists('generate_random_token')) { + + function generate_random_token($key = null) { + + if (is_null($key)) { + $key = config('app.key'); + $key = starts_with($key, 'base64:') ? base64_decode(substr($key, 7)) : $key; + } + + return hash_hmac('sha256', str_random(40), $key); + } +} diff --git a/database/factories/UserModelFactory.php b/database/factories/UserModelFactory.php index d2bb8ff9..082fd074 100644 --- a/database/factories/UserModelFactory.php +++ b/database/factories/UserModelFactory.php @@ -29,7 +29,7 @@ $factory->defineAs(User::class, 'unverified', function (Faker\Generator $faker) 'last_sign_at' => $faker->dateTime, 'register_at' => $faker->dateTime, 'verified' => 0, - 'verification_token' => hash_hmac('sha256', str_random(40), 'key') + 'verification_token' => generate_random_token() ]; });