Laravel: включить учетную запись пользователя Sentry на нескольких компьютерах
При использовании Sentry в L4 можно ли одновременно использовать учетную запись на нескольких компьютерах? Прямо сейчас Sentry выводит пользователя в тот момент, когда одна и та же учетная запись используется на другом компьютере.
В настоящий момент я пытаюсь, чтобы этого не произошло, и одновременно оба пользователя вошли в систему. Я знаю, что это функция безопасности, когда пользователь выходит из системы, но мои обстоятельства проекта - это не то, что вы бы назвали нормальным.
Ответы
Ответ 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, и что вы найдете другой способ, но это может быть очень сложно.