Oauth社交登录使用MEAN.js Restful sessionless API后端

时间:2015-03-20 12:33:09

标签: angularjs oauth restful-authentication meanjs

我正在使用MEAN.js开发一个Restful API,它将由AngularJS网站和Phonegap移动应用程序使用。

我希望用户能够使用Faceboo,Google和Twitter创建帐户和/或登录。

我正在尝试使用MEAN.js种子应用程序附带的相同示例代码,但是使用它的Node端,在端口3000上仅提供API,在另一台服务器上运行的网站(当前在端口上) 9000)。

我已经使用Passport自定义本地策略实现了令牌身份验证,该策略生成令牌,并使用承载策略来验证API调用。

但我遇到社交登录问题,将社交帐户与现有用户联系起来。

从Angular Client我调用api端点,将用户重定向到oauth提供者(例如Twitter)。当用户回来时,我的服务器不知道已记录的用户,因为我不再使用会话了。

我已尝试将提供程序令牌返回给客户端,但在解析anguler URL时遇到问题。然后我在angular之外的另一个页面编码接收提供者令牌并调用api端点发送oauth令牌和我的api发出的令牌。它适用于谷歌,但不适用于Twitter。看来twitter需要一个会话。

无论如何,达到我想要的最佳方法是什么?我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

由于您使用Angularjs,请查看此Angularjs库https://github.com/sahat/satellizer。该库几乎打开了一个oauth弹出窗口并检查弹出URL是否有令牌。您可以轻松复制该方法或只使用此库。它适用于一些社交媒体提供商,如Twitter,它很容易添加更多。

答案 1 :(得分:0)

我需要同样的东西,所以我开始创建自己的东西。它仍在开发中,但应该给你一个良好的开端。随意创建一个拉取请求,并帮助使其更好。也许我们最终可以将它合并到他们的代码库中。

https://github.com/elliottross23/MeanJsSocialLoginTokenAuth