2014-09-04 61 views
0

我一直在寻找这个问题,还没有发现任何东西。如何使用nancy api和angularjs完成google oauth认证?

我想创建一个请求离线访问google api的web应用程序,我主要关心的是我使用angular作为前端,并且我正在使用在nancy中创建的api。

我已经能够访问,但只有几个小时,但我需要用户离线访问应用程序,因为它将有一个任务运行所需的时间量。

有没有人已经完成了这个?试过吗?经验?我试图调用google oauth api来请求令牌,但它返回405方法不允许。

回答

1
+0

嗨Christian,对于迟到的回复感到抱歉。这看起来不错,我会测试这个,星期一让你知道。 – 2014-09-20 13:16:13

+0

版本> 0.3.14不会从Twitter和最新版本获取AccessTokenSecret,例如,当试图验证用户与谷歌时,0.6与'Nancy.Authentication.Forms'冲突 – 2016-02-22 12:31:49

0

我从来没有用过南希。但一般来说,您的OAUTH问题应该在服务器端处理。用户使用谷歌oauth进行验证,谷歌oauth流程返回到后端服务器,后端服务器放弃一个密钥,cookie或类似的东西,您的前端现在在请求中使用它。

这至少是我如何处理它。我对来自后端API的所有$ http请求使用基于令牌的方案,如果请求上没有有效令牌,则返回401;如果有令牌,则返回403,但该令牌不授权该资源。我卡住了一个httpProvider拦截器,如果发生401,它将启动客户端登录流程。

具体来说,令牌只是一个随机生成的一系列变成十六进制的位,然后我将它作为一个键存储在redis中,其值是与此登录关联的user_id。

当然,所有这些都需要一个真正的https堆栈来保证安全,因为我只是在推动纯文本一次性密钥的使用量,但这只是你可以做的所有事情。

+0

嗨@pfooti我认为你是对的。我能够通过服务器端处理它。 – 2014-10-08 15:20:28