繁体   English   中英

使用php后端在AngularJS应用上进行Facebook身份验证

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM