会话不记得,以及为什么每次加载页面时都会创建会话?

时间:2015-07-20 10:33:34

标签: session laravel-5

我开始使用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];

}

请帮帮我。这是我项目的最后一步。

先谢谢你。

2 个答案:

答案 0 :(得分:0)

您的.env设置为SESSION_DRIVER时可能file - 根据您的托管环境,这可能意味着您的会话因每次请求而无法保留从不同的文件服务器(在云环境中很常见)提供服务。

尝试将SESSION_DRIVER更改为database

答案 1 :(得分:-1)

你放了

session_start();

在你的所有页面中? 如果不是,那可能是你的问题,我建议你直接在索引中添加它