我开始使用laravel 5处理我的项目。我在登录到我的网站后意识到它在我的本地目录中运行良好,但我知道当我将项目托管到服务器时遇到问题。每次登录后,每次我借用页面时,会话都无法记住并重新创建。这给我带来了问题。
Laravel登录
public function postLogin(){
$hit = 0;
if(Request::ajax()){
$pw = Request::input('pw');
if(!empty($pw)){
$admin_pass = AdminPassword::first(['admin_pass']);
$ip_address = Request::ip();
if(!empty($admin_pass) && trim($admin_pass->admin_pass) == trim($pw)){
if(Auth::attempt(['username' => Request::input('username'), 'password' => Request::input('password'),'status'=>1])){
try{
$user = Auth::user();
$user->last_login = date('Y-m-d H:i:s');
$user->login_ip = $ip_address;
$user->save();
$permissions = Auth::user()->permission;
if(!empty($permissions) && count($permissions) >0){
session(['ROLE_PERMISSION'=>$permissions]);
}
$failed = FailedLogin::whereRaw('ip_address = INET_ATON(\''.$ip_address.'\')')->first();
if(!empty($failed)){
$failed->delete();
}
}catch (\Exception $ex){}
$url = Request::session()->pull('url.intended', '/');
return ['url'=>$url,'msg'=>'Successfully.','status'=>true,'hit'=>$hit];
}else{
$hit = $this->updateFailedLogin($ip_address,Request::input('username'));
}
}else{
$hit = $this->updateFailedLogin($ip_address,Request::input('username'));
}
}
}else{
return redirect()->route('login');
}
return ['url'=>'','msg'=>'Try again.','status'=>false,'hit'=>$hit];
}
请帮帮我。这是我项目的最后一步。
先谢谢你。
答案 0 :(得分:0)
您的.env设置为SESSION_DRIVER
时可能file
- 根据您的托管环境,这可能意味着您的会话因每次请求而无法保留从不同的文件服务器(在云环境中很常见)提供服务。
尝试将SESSION_DRIVER
更改为database
。
答案 1 :(得分:-1)
你放了
session_start();
在你的所有页面中? 如果不是,那可能是你的问题,我建议你直接在索引中添加它