【问题标题】:How to accomplish google oauth authentication using nancy api and angularjs?如何使用 nancy api 和 angularjs 完成 google oauth 身份验证?
【发布时间】:2014-10-29 19:12:27
【问题描述】:

我一直在寻找这个问题,但还没有找到任何东西。

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

我已经能够获得访问权限,但只有几个小时,但我需要用户对应用程序进行大规模离线访问,因为它会在所需的每一段时间内运行一项任务。

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

【问题讨论】:

    标签: angularjs api oauth google-api nancy


    【解决方案1】:

    您可以使用Simpleauthentication,它具有特定于南希的NuGet package。只需关注instruction to set ip SimpleAuthentication in a Nancy app

    【讨论】:

    • 嗨克里斯蒂安,很抱歉回复晚了。看起来不错,我会对此进行测试,并在星期一之前通知您。
    • 版本 > 0.3.14 不会从 Twitter 和最新版本获取 AccessTokenSecret,即 0.6 在尝试使用 google 验证用户时与 Nancy.Authentication.Forms 冲突
    【解决方案2】:

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

    至少我是这样处理的。我对来自后端 API 的所有 $http 请求使用基于令牌的方案,如果请求中没有有效令牌,则返回 401,如果有令牌,则返回 403,但该令牌未授权该资源。我在 Angular 中插入了一个 httpProvider 拦截器,如果出现 401,它会启动客户端登录流程。

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

    当然,所有这些都需要一个真正的 https 堆栈才能保证安全,因为我只是在推送多少纯文本一次性密钥,但这就是你能做的所有事情。

    【讨论】:

    • 嗨@pfooti 我认为你是对的。我能够通过服务器端处理它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多