我正在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请求。但是,即使使用正确的登录凭据,它也会继续返回相同的登录页面。
由于
答案 0 :(得分:0)
尝试更改app \ config \ session.php =>中的值'饼干&#39 ;. 这应该解决问题