我正在使用Laravel创建一个应用程序,并构建一个小的内部API以连接到Angular前端。对Laravel后端的角度验证
我有auth工作,但要确保这是登录用户的可接受的方式,并确保一切安全。
会话控制器:
public function index() {
return Response::json(Auth::check());
}
public function create() {
if (Auth::check()) {
return Redirect::to('/admin');
}
return Redirect::to('/');
}
public function login() {
if (Auth::attempt(array('email' => Input::json('email'), 'password' => Input::json('password')))) {
return Response::json(Auth::user());
// return Redirect::to('/admin');
} else {
return Response::json(array('flash' => 'Invalid username or password'), 500);
}
}
public function logout() {
Auth::logout();
return Response::json(array('flash' => 'Logged Out!'));
}
Laravel路线:
Route::get('auth/status', '[email protected]');
角厂:
app.factory('Auth', [ "$http", function($http){
var Auth = {};
Auth.getAuthStatus = function() {
$http({
method: "GET",
url: "/auth/status",
headers: {"Content-Type": "application/json"}
}).success(function(data) {
if(!data) {
console.log('Unable to verify auth session');
} else if (data) {
console.log('successfully getting auth status');
console.log(data);
// return $scope.categories;
Auth.status = data;
return Auth.status;
}
});
}
return Auth;
}
]);
我会那么基本上包裹的东西整个应用程序就像一个 “AppController的” 和将“Auth”工厂声明为依赖项。然后,我可以调用Auth.getAuthStatus()并根据用户状态隐藏/显示事物,因为这基本上是SPA。
我知道我还需要隐藏/ auth/status URI被任何人查看/命中,并且想知道如何做到这一点。一种普遍的问题,但任何洞察力将不胜感激。谢谢。
我已经看到了这篇文章,只是没有乍一看颇有如何实现有益的,写得很好很。谢谢一堆诺亚。 – cpk 2014-10-09 17:02:56
没问题,很高兴我能帮到你。 – 2014-10-09 17:30:09
还有一个跟进问题。我知道这是如何工作的,但是我怎样才能在浏览器标签页或新窗口/稍后访问之间保持登录状态? 我会在“Session”服务中检查laravel的cookie是否存在?它的所有开始点击...再次感谢 – cpk 2014-10-09 18:47:15