Я очень новичок в Laravel. Я использовал javascript для автоматического выхода из системы. Проблема в том, когда я переключаю учетную запись, которая создает проблему. Сценарий таков:
- Вы вошли как Суперадмин
- После входа в систему появляется список ServiceProvider. Нажатие на него будет олицетворять их, и данные сеанса будут заменены на этого поставщика услуг.
Итак, теперь вы вошли как поставщик услуг без выхода из учетной записи superadmin. В этом случае вызов ajax, показывающий 419 неизвестное состояние и перезагружающий страницу, выходит из этой учетной записи.
Я выполнил поиск этого неизвестного статуса, но все они показывают одно и то же решение для передачи токена CSRF. В моем случае я уже передаю его, но, тем не менее, он показывает ошибку только при переключении учетной записи.
Действительно нужно какое-то решение по этому вопросу. Заранее спасибо.
Ниже приведен мой код автоматического выхода из системы:
макет / приложение-inside.blade.php
<script>
var sesnLifeTime = 10 * 60;
var logtime = "{{strtotime(Session::get('logtime'))}}";
var lastActvTime = logtime;
$( "body" ).bind( "mousemove", function() {
var date = moment.utc().format('YYYY-MM-DD HH:mm:ss');
var stillUtc = moment.utc(date).toDate();
var nowDateTime = moment(stillUtc).local().format('YYYY-MM-DD HH:mm:ss');
var nowDateTimestamp = moment(nowDateTime).format("X");
lastActvTime = nowDateTimestamp;
});
document.addEventListener("DOMContentLoaded", function (event) {
setInterval(function(){
var date = moment.utc().format('YYYY-MM-DD HH:mm:ss');
var stillUtc = moment.utc(date).toDate();
var nowDateTime = moment(stillUtc).local().format('YYYY-MM-DD HH:mm:ss');
var nowDateTimestamp = moment(nowDateTime).format("X");
var idleTime = parseInt(nowDateTimestamp) - parseInt(lastActvTime);
if(idleTime >= sesnLifeTime)
{
$('#myModal').modal('show');
console.clear();
console.log("idleTime ==== "+idleTime);
}
else
{
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: '/dashboard.setTime',
type: 'POST',
async: false,
data:{'lastActvTime': nowDateTime},
success: function(response) {
console.log(response+"===="+idleTime);
}
});
}
}, 5000);
});
</script>
Вышеуказанный ajax вызывает с контроллера follwong.
DashboardController
function setTimeAjax(Request $request) {
$lastActvTime = $request->lastActvTime;
//== storing and fetching the updated time into session ==//
$request->session()->put('logtime', $lastActvTime);
$data = $request->session()->all();
//== storing and fetching the updated time into session ==//
$logtime = $data['logtime'];
echo $logtime.'===='.$lastActvTime;
}
Я проверяю активность пользователя каждые 5 секунд. Поэтому, когда я переключаю учетную запись, вместо того, чтобы выходить из системы, она должна оставаться в системе, поскольку я являюсь активным пользователем.