Angularjs 如何更好地通过facebook进行身份验证?
我有一个简单的应用程序,通过中的实现了FacebookOAuth。它可以很好地使用JSP。但现在我想实现angularJS前端。我找到了一个使用ajax进行身份验证的:Angularjs 如何更好地通过facebook进行身份验证?,angularjs,ajax,facebook,spring-security,Angularjs,Ajax,Facebook,Spring Security,我有一个简单的应用程序,通过中的实现了FacebookOAuth。它可以很好地使用JSP。但现在我想实现angularJS前端。我找到了一个使用ajax进行身份验证的: login: function () { var defer = $q.defer(); $http({ url: config.host + config.loginUrl, met
login: function () {
var defer = $q.defer();
$http({
url: config.host + config.loginUrl,
method: 'POST',
async: false
}).success(function (data) {
user = data;
lastUser = data;
defer.resolve(user);
$rootScope.$broadcast('AuthenticateJS.login', user);
}).error(function () {
defer.reject();
});
当我通过单击Login href调用此函数时,它会抛出一个错误:
(索引):无法加载1 XMLHttpRequest
.
请求的服务器上不存在“Access Control Allow Origin”标头
资源。因此,不允许使用源“”
进入
我知道出现这个问题是因为我在Facebook应用程序中插入了应用程序的源代码,但我不知道如何解决这个问题
如果这种方式是不可能的(正如我在stackoveflow上读到的),那么哪种方式更好?也许存在这样一种方法,我可以简单地将我的springsecurity原理设置为angular并将其作为cookie存储在localstorage上 也许你可以使用官方的facebook JS SDK。他们还为Angular提供了一个基本的包装器:但在这种情况下,我将在前端进行身份验证,什么是不安全的,我需要在每个查询上向BackEnden发送usertoken即使facebook说:使用facebook SDK for JavaScript,这是将facebook登录添加到您的网站的推荐方法。。。我建议您在本地主机上创建一个vhost,以便能够将“mydomain.local.com”而不是localhost,并将mydomain.local.com添加到应用程序中允许的URL中。您不能通过AJAX加载登录对话框–您必须将用户重定向到该对话框。(原因应该很明显——用户需要能够通过浏览器地址栏验证他们确实在向Facebook发送登录凭据,而不是某些钓鱼网站。)