[英]Facebook authentication on AngularJS app with php backend
我正在开发一个主要基于CRUD的应用程序。 它是用PHP编写的,并通过JSON API公开。
前端是用AngularJS编写的,我正在进入需要整理身份验证的阶段。 我知道我希望它是基于令牌的,并且最好能够简单地使用Facebook登录。
由于所有数据等都在PHP后端,我认为应该进行身份验证。 我的想法是让AngularJS前端要求PHP后端登录,此时后端关闭并使用facebook登录,将令牌保存在数据库中,然后将其发送回AngularJS前端,以便它可以提供随后的请求。
我有点困惑的是让AngularJS要求后端进行身份验证。 处理这个问题的最佳方法是什么? 我应该只是在前端有一个链接向后端发出http请求吗? 但是,如果我这样做,用户如何通过Facebook对话呈现登录。
假设我的前端是http://front.myapp.com ,后端是http://back.myapp.com,那么身份验证就像http://back.myapp.com/auth一样处理
我的问题是,我会在AngularJS方面编写什么样的代码来让它与后端正确交谈,考虑到后端还必须与Facebook交谈? 真正的代码示例将是最有帮助的。
我建议你使用这个库http://jberta93.github.io/ng-facebook-api/并在你的前端做Facebook认证。 您可以轻松地检索用户数据,然后使用$ http.post将这些数据提交到您的后端应用程序! 然后,如果您需要与Facebook的后端交谈,您可以使用从前端身份验证库中返回的authResponse! 这样,在您的应用领域中,您只需指定前端网址。 而且您的用户没有看到后端应用程序!
一个小例子:
$scope.logAndRetriveFacebookUser = function(){
facebook.getUser().then(function(r){
var user = r.user; //User data returned;
var authResponse = r.authResponse; //Token auth, id etc..
$http.post('/backend-login-url', {user:user,authResponse:authResponse});
}, function(err){
console.log("Ops, something went wrong...");
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.