我使用的laravel会话和auth在服务器上有一些问题,但在localhost中工作得很好。我会表现出来。
路线
Route::get('/signin', 'PageController@signin');
Route::get('/signup', 'PageController@signup');
Route::get('/terms', 'PageController@terms');
Route::resource('/', 'PageController');
Route::controller('user', 'UserController');
PageController
public function index() {
if (Auth::check()) {
return View::make('user.index');
} else {
return View::make('landing');
}
}
UserController中
public function postLogin() {
$data = array();
$secured = ['user_email' => $_POST['email'], 'password' => $_POST['password']];
if (Auth::attempt($secured, isset($_POST['remember']))) {
if (Auth::user()->user_status == 1 ) {
return Redirect::to('/');
} else {
$data['success'] = false;
}
} else {
$data['success'] = false;
}
return $data;
}
Auth::check()
在pagecontoller中失败。但是,如果我将代码更改为
UserController中
public function postLogin() {
我得到索引页面,如果我点击主页的链接,我得到的是登录页面而不是索引页面。
$data = array();
$secured = ['user_email' => $_POST['email'], 'password' => $_POST['password']];
if (Auth::attempt($secured, isset($_POST['remember']))) {
if (Auth::user()->user_status == 1 ) {
return Return View::make(user.index);
} else {
$data['success'] = false;
}
} else {
$data['success'] = false;
}
return $data;
}
我想我澄清了我的问题,我已经通过可能的解决方案早先以同样的方式回答问题没有任何效果。
我不认为它是服务器问题,因为另一个laravel应用程序在同一台服务器上工作正常。
请帮忙。
答案 0 :(得分:0)
@ it'sme,
您的查询似乎不完整,据我所知,您只能在通过身份验证检查一次后才能获取索引页,这是通过使用此方法:
public function postLogin() {
$data = array();
$secured = ['user_email' => $_POST['email'], 'password' => $_POST['password']];
if (Auth::attempt($secured, isset($_POST['remember']))) {
if (Auth::user()->user_status == 1 ) {
return Return View::make(user.index);
}
else {
$data['success'] = false;
}
}
else {
$data['success'] = false;
}
return $data;
}
尝试使用其他浏览器确保客户端没有cookie存储限制,并检查app / config / session.php文件,看看您是否根据需要配置了HTTPS Only Cookies。
并且只是另外注意这一行“return Return View :: make(user.index);”看起来很模糊。