我正在用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请求。然而,即使使用正确的登录凭据,它仍然会返回到相同的登录页面。
谢谢
发布于 2014-08-14 12:13:00
尝试更改cookie =>‘app\config\session.php’中的值。这应该可以解决这个问题
https://stackoverflow.com/questions/22316901
复制相似问题