与angular和节点的Oauth

我有麻烦得到oauthangular度工作。 当我直接进入链接到浏览器

http://localhost:8080/auth/twiter 

我能够使用oauth进行连接,并得到回应但是,当我试图用下面的代码angular度做到这一点

  login_twitter : function login_twitter(){ var deferred = $q.defer(); $http.get('auth/twitter') .success(function (data,status){ if(status === 200 && data.state=='success'){ user = data.user.name; defered.resolve(); } else{ deferred.reject(); } }) .error(function (data){ deferred.reject(); }); return deferred.promise; 

我从浏览器中得到一个错误

 XMLHttpRequest cannot load ....link... No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. 

在我的服务器,我试过(res.header和res.setHeader)

 app.use(function (req, res, next) { res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080'); res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); res.setHeader('Access-Control-Allow-Credentials', true); next(); }); 

任何人都可以帮我吗? 我被困了一段时间。 或者是否有任何可以使用Oauth以angular度和节点login的示例,因为大多数教程都是使用node和ejs / jade

Twitterauthentication策略要求用户login到Twitter,并允许您的“应用”权限访问您的Twitter帐户信息。 这不能用XHR来完成,因为如果用户尚未login,用户如何input他们的Twitter凭证loginTwitter呢? 如果请求是通过XHR发送的,用户将如何批准您的Twitter“应用程序”请求的权限?

这适用于所有使用OAuth或OpenID的Passport策略。 用户的浏览器必须直接进入auth提供商的网站,以便他们可以:A)login到auth提供商或B)批准您在您的应用程序中请求的权限。 一旦用户完成了validation提供程序(在您的情况下,Twitter),然后将用户的浏览器redirect到您的应用程序的端点与某种forms的令牌,然后您的应用程序将用于从validation提供程序请求信息(如电子邮件地址,全名等)