Использование 5.0
в config/session.php Я установил 'domain' => '.example.com'
, но он не работает. Я не могу продолжать сеанс даже в одном домене.
У моего сайта много поддоменов:
vancouver.example.com
newyork.example.com
и т.д.... они размещены на одном сервере и являются одним и тем же приложением Laravel (совместно используют один и тот же каталог хранилищ)
Я вхожу в систему с правильными учетными данными, после чего приложение перенаправляется на другую страницу на сайте, и у меня нет сеанса на этом этапе. var_dump(Auth::user())
показывает null
, хотя я вошел в систему с правильными учетными данными.
storage/framework/sessions
показывает 14 разных файлов, все они для меня, и я очистил их, прежде чем начать тестирование.
Я приложу свой метод AuthController @postLogin ниже, который отлично работает, если session.php 'domain' => null
public function postLogin(Request $request)
{
$this->validate($request, [
'email' => 'required|email', 'password' => 'required',
]);
$credentials = $request->only('email', 'password');
if ($this->auth->attempt($credentials, $request->has('remember'))) {
Session::flash('message', 'You are now logged in.');
Session::flash('status', 'success');
if (str_contains($_SERVER['HTTP_REFERER'], '?goto=')) {
$params = explode('?', $_SERVER['HTTP_REFERER'])[1];
$target = explode('=', $params)[1];
} else {
$target = '/';
}
return redirect($target);
}
return redirect($this->loginPath())
->withInput($request->only('email', 'remember'))
->withErrors([
'email' => $this->getFailedLoginMessage(),
]);
}