我尝试使用node作为我的服务器技术构建RESTful API。
我想构建我的API,以便任何客户端都可以使用它。在不久的将来,我希望能够构建一个iOS应用程序和一个Android应用程序。到目前为止测试,我一直在使用帆中的视图。
我已经添加了Passportjs来帮助通过其他提供商验证用户,当我在我的sails应用程序中使用它时,一切似乎都很有用。
我创建了一个不同的应用程序,它使用我的API和AngularJS来测试它。我虽然遇到了障碍。我试图点击我的auth端点,但我一直都是错误。
每当我尝试点击/auth/:provider
时,它都会尝试执行流程,但在尝试转到提供商的页面进行身份验证时会出错:
XMLHttpRequest cannot load https://api.twitter.com/oauth/authenticate?oauth_token={TOKENREMOVED}.
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
在我的角色应用程序中,我正在做:
$http.get('http://localhost:1337/auth/twitter').then(){...})
当我尝试使用我的节点应用程序中的视图登录流程时,它可以正常工作。
我猜我是否甚至无法在不同的角度应用程序中执行身份验证流程,我甚至无法在iOS或Android上执行此操作。
我应该做些什么吗?我真的很困惑如何通过这一点,所以任何帮助或建议将不胜感激。
答案 0 :(得分:0)
您需要将用户的浏览器重定向到Twitter的/oauth/authenticate
网址,然后在Angular中使用$window.location()
执行此操作。 $http.get()
方法发出XHR请求,这与重定向不同。