登录验证检查在laravel 4中保持返回false

时间:2014-03-11 05:06:34

标签: php json laravel laravel-4

我正在laravel中创建一个登录系统。在我的本地服务器上,代码可以工作但是当我把它放在实时服务器上时,Auth :: check()会保持返回false,因此当我使用正确的凭据登录时,它会再次将我重定向回登录页面。仅供参考我的肝脏服务器使用的是PHP 5.4,而我的本地服务器使用的是PHP 5.5

这是我的代码。

routes.php文件

    Route::get('/', function() {
//Auth::check() KEEPS RETURNING FALSE EVEN WHEN USER LOGS IN
                if (Auth::check() == true) {
                    $role = Auth::user()->role;
                    if ($role == 1) {
                        return View::make('administrator');
                    } elseif ($role == 9) {
                        return View::make('agent');
                    }
                } else {
                    return View::make('login');
                }
            });

LoginController.php

 public function login() {
        if (Auth::attempt(array('username' => Input::json('username'), 'password' => Input::json('password')))) {
            return Response::json(Auth::user());
        } else {

            return Response::json(array('flash' => 'Invalid email or password'), 500);
        }
    }
}

angularcontroller.js

    $scope.login = function() {
        //assign variables
        var post = {};
        post.username = $scope.info.username;
        post.password = $scope.info.password;

//Validation
        var errors = 0;


        if (errors == 0) {
            loginServ.login(post).then(function(data) {
                if (data.status == 500) {
                    alert('wrong username or password');
                } else {
                    window.location.replace("");
                }
            });
        }
    };

angular_service.js

login_module.factory('loginServ', function($http, $q) {
    return {
        login: function(post) {

            var url =  "login/login";
            return $q.all([
                $http.post(url, {
                    username: post.username,
                    password: post.password
                })
            ])
                    .then(function(results) {
                var data = [];
                angular.forEach(results, function(result) {
                    data = data.concat(result.data);
                    //  console.log("data: "+result);
                    // console.log("result.data: "+result.data);
                });

                return data[0];
            },
                    function(error) {
                        console.log(error.status);
                        return error;
                        // Handle error here
                    });

        }
    }
});

我使用angularjs登录表单。它发送一个POST请求,如果它得到一个200响应,那么它会向“/”发送一个GET请求。但是,即使使用正确的登录凭据,它也会继续返回相同的登录页面。

由于

1 个答案:

答案 0 :(得分:0)

尝试更改app \ config \ session.php =>中的值'饼干&#39 ;. 这应该解决问题