Подтвердить что ты не робот

Laravel: включить учетную запись пользователя Sentry на нескольких компьютерах

При использовании Sentry в L4 можно ли одновременно использовать учетную запись на нескольких компьютерах? Прямо сейчас Sentry выводит пользователя в тот момент, когда одна и та же учетная запись используется на другом компьютере.

В настоящий момент я пытаюсь, чтобы этого не произошло, и одновременно оба пользователя вошли в систему. Я знаю, что это функция безопасности, когда пользователь выходит из системы, но мои обстоятельства проекта - это не то, что вы бы назвали нормальным.

4b9b3361

Ответ 1

Расширение для ответа Нико Каага и реализация комментария к спаму:

/app/config/packages/cartalyst/sentry/config.php

...
    // Modify users array to point to custom model.    

'users' => array(
    'model' => 'User',
    'login_attribute' => 'email',
),    

...

/app/models/User.php

use Cartalyst\Sentry\Users\Eloquent\User as SentryUser;

class User extends SentryUser
{

    ...

    ...

    // Override the SentryUser getPersistCode method.

    public function getPersistCode()
    {
        if (!$this->persist_code)
        {
            $this->persist_code = $this->getRandomString();

            // Our code got hashed
            $persistCode = $this->persist_code;

            $this->save();

            return $persistCode;            
        }
        return $this->persist_code;
    }
}

Ответ 2

Это возможно, но не поддерживается самим Sentry. Для этого вам нужно изменить код ядра в Sentry или найти способ переопределить класс User, который находится в коде Sentry.

Функция, которую необходимо настроить, - это "GetPresistCode()" в модели пользователя, которую можно найти в:

/vendor/cartalyst/sentry/src/Cartalyst/Sentry/Users/Eloquent/User.php

И вот как должна выглядеть функция (не тестировалась):

/**
 * Gets a code for when the user is
 * persisted to a cookie or session which
 * identifies the user.
 *
 * @return string
 */
public function getPersistCode()
{
    if (!$this->persist_code) {
        $this->persist_code = $this->getRandomString();

        // Our code got hashed
        $persistCode = $this->persist_code;

        $this->save();

        return $persistCode;
    }
    return $this->persist_code;
}

Я должен сказать, что я настоятельно рекомендую вам не изменить код в Sentry, и что вы найдете другой способ, но это может быть очень сложно.