#php #laravel #laravel-7
Вопрос:
Мне нужно динамически установить время жизни сеанса в зависимости от роли вошедшего пользователя. Я пробовал использовать промежуточное ПО, как показано ниже, но это не работает. Также пробовал использовать config(['session.lifetime' => 1]);
метод входа в систему.
namespace AppHttpMiddleware;
use Closure;
class UserLevelSessionSetter
{
/**
* Handle an incoming request.
*
* @param IlluminateHttpRequest $request
* @param Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$user = auth()->user();
if ($user amp;amp; isCustomer($user)) {
config(['session.lifetime' => 1]);
} else {
config(['session.lifetime' => 525600]); // 1 year
}
return $next($request);
}
}
Комментарии:
1. Что значит, похоже, это не работает? Как насчет того, что это не работает?
2. конфигурация является глобальной, не связана с конкретным пользователем.. вы, вероятно, захотите сделать это вручную… например, в промежуточном программном обеспечении, если
session['start']
оно не установлено, вы устанавливаете его сейчас, а затем каждый раз, когда вы проверяете, напримерif(now - session['start'] > whatever you want) session_abort()
… obv, вам нужно будет установить время сеанса на 1 год и сделать это для обычного пользователя