Я использую пользовательский метод для аутентификации пользователя. При аутентификации пользователя я помещаю некоторые данные в сессию. Данные, которые я вставляю, это массив / объект. Но я сталкиваюсь с проблемой, если размер массива больше 8. Если я помещаю 9 данных массива, это выводит меня из системы (возможно, возникли некоторые проблемы с сессией). Не могу найти причину этого. Кто-нибудь может мне помочь!
это мой массив / структура объекта.
[0] => stdClass Object
(
[privileges_of_role_id] => 1
[role_id] => 4
[institute_branch_version_id] => 1
[is_active] => 1
)
метод, который я обрабатываю для аутентификации пользователя:
public function signInAction(Request $request)
{
if (!$request->ajax()) {
$validator = Validator::make($request->all(), array(
'identifiers' => 'required|max:255',
'password' => 'required|max:20'
));
if ($validator->fails()) {
return redirect()->back()
->withErrors($validator)
->withInput();
}
try {
$loginBy = NULL;
$loginByValue = $request->identifiers;
if (is_numeric($loginByValue)) {
if (strlen($loginByValue) > 3 && substr($loginByValue, 0, 3)) {
$loginBy = 'phone_no';
} else {
$loginBy = 'user_id';
}
} else if (filter_var($loginByValue, FILTER_VALIDATE_EMAIL)) {
$loginBy = 'email';
} else {
$loginBy = 'username';
}
} catch (\Exception $ex) {
echo $ex->getMessage();
}
$loginCredentials = array(
$loginBy => $loginByValue,
'password' => $request->password,
'is_active' => 1
);
if (Auth::attempt($loginCredentials)) {
$PrivilegesOfRole = DB::table('tbl_privileges_of_roles')
->where('role_id', Auth::user()->role_id)
->where('is_active', 1)
->take(8) // if i take 9, its not letting me logged in.
->get();
$request->session()->put('PrivilegesOfRole', $PrivilegesOfRole);
return redirect()->intended(route('home::onlineInfo'));
} else {
return redirect()->back()
->with('errorMessage', 'The identifiers and password you entered don\'t match.')
->withInput();
}
} else {
throw new Exception('Invalid request!');
}
}