Я хочу ограничить реферал пользователя до 1 реферала на устройство - PullRequest
0 голосов
/ 13 июля 2020
• 1000 учетная запись на устройство.

То есть, если открыть учетную запись на моем устройстве, это все, любая другая учетная запись, открытая на этом устройстве, не должна учитываться. Я ищу способ определить IP-адрес пользователя или устройства, чтобы ограничить его до 1 на устройство, вот мое промежуточное ПО, которое я использую для проверки направления в точке регистрации.

public function handle($request, Closure $next)
{
    $response = $next($request);

    if (!$request->hasCookie('referral') && $request->query('ref')) {
        // Add a cookie to the response that lasts 5 years (in minutes)
        $response->cookie('referral', encrypt($request->query('ref')), 525600);
    }

    return $response;
}

и вот мой контроллер регистрации

protected function create(array $data)
{
    $referred_by = Cookie::get('referral');

    $user = '';

    $data['password'] = Hash::make($data['password']);

    $user = User::create($data);

    Wallet::create([
        'user_id' => $user->id
    ]);
    Profile::create([
        'user_id' => $user->id,
        'referral' => Str::random(5)
    ]);

    if ($referred_by != null) {
        $encrypter = app(\Illuminate\Contracts\Encryption\Encrypter::class);
        $decryptedString = $encrypter->decrypt($referred_by);
        Referral::create([
            'user_id' => $user->id,
            'referred_by' =>  $decryptedString
        ]);
    }

    Mail::to($user)->send(new NewUserEmail($user));

    return $user;
}

1 Ответ

0 голосов
/ 14 июля 2020

насколько я знаю, php дает только заголовок User-Agent с информацией о браузере.

$headers = getallheaders();
$agent = $headers['User-Agent'];

Для получения подробной информации о пользователе вам необходимо использовать node js.

вы можете проверить GitHub, в нем много проектов, связанных с обнаружением пользовательских устройств.

примеры:

  1. https://github.com/matomo-org/device-detector
  2. https://github.com/keithws/browser-report
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...