我正在开发一个主要基于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交谈?真正的代码示例将是最有帮助的。
答案 0 :(得分:2)
我建议您使用此库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...");
});
}