【发布时间】:2016-01-21 06:17:17
【问题描述】:
如何检查用户是否使用 angularjs 在服务器(不是客户端)上登录?
我试过了:
userModel.getAuthStatus = function() {
var r = $http({
headers: {
'Content-Type': 'application/json'
},
url: baseUrl + 'user/auth',
method: "POST"
}).success(function(response) {
// console.log(response);
if(response.user){
console.log('login ');
var auth = true;
}else{
console.log('login is false');
var auth = false;
}
return auth;
//$cookies.put('auth', JSON.stringify(response));
}).error(function(data, status, headers) {
//console.log(data, status, headers);
//alert(data);
});
console.log(r);
};
在我的服务器端,我收到如下响应:
public function checkAuth(Request $request)
{
if (Auth::check()) {
return Response::json(array('error' => false,'user' => Auth::user()),201);
}
else{
return Response::json(array('error'=>true));
}
}
如果用户登录返回 true,我希望我的 angular getAuthStatus() 转到服务器。否则返回 false。
【问题讨论】:
-
有什么问题?您没有在服务器上收到来自客户端的 POST 吗?
-
不在您的请求中发送任何数据......这会有所帮助。提问时应该确定什么是有效的或无效的。您显示了 2 个环境的代码,没有问题描述
-
问题是console.log(r) 给出了http post 对象。 'code'Promise {$$state: Object} $$state: Object error: (fn) success: (fn) proto: Promise catch: (callback) constructor: Promise() finally: (callback , progressBack) 然后: (onFulfilled, onRejected, progressBack) proto: Object 'code
-
r是$http返回的承诺对象 .... 如果你想从getAuthStatus ()返回,请返回该承诺
标签: angularjs http laravel authentication