【问题标题】:External Private API Authentication with Backbone带有骨干网的外部私有 API 身份验证
【发布时间】:2025-12-31 09:35:12
【问题描述】:

我正在构建一个 API,但在使用 Backbone.js 等前端框架时处理身份验证存在疑问。

我有一个 API 服务器,负责根据 RESTful Web 请求返回和修改数据。

我有另一个应用服务器,它是一个 Backbone 应用程序。我希望此应用程序直接与我的 API 服务器连接,因此设置整个项目,以便此应用程序服务器可以向 API 服务器发出跨域 AJAX 请求。

我不希望未经授权的各方访问某些 API 路由。例如,我有一个路径 /users 列出了我的应用程序的所有用户。稍后我需要此路径用于管理功能,但我不希望它公开提供给我的应用服务器。

什么是好的身份验证方案? OAuth 不起作用,因为秘密令牌将在前端公开。在那之后,我有点坚持我的选择。有人对下一步有什么建议吗?

【问题讨论】:

    标签: javascript api authentication backbone.js oauth


    【解决方案1】:

    在这种情况下,我会使用多种技术。

    -- 良好的基于​​ ole Cookie 的身份验证

    由于主干应用程序将始终在浏览器中使用,并且浏览器具有内置的 cookie 支持,我建议您应该在服务器端接受基于 cookie 的会话。所有与身份验证相关的东西都将由浏览器处理,您不必担心存储密钥等。在许多库(如 iPhone 中的 NSURL)和框架(如 PhoneGap/Trigger)上都支持 cookie,所以你可以支持各种工作量不大的客户。

    -- 普通 API 密钥

    对于第三方,我使用基于 api-key 的身份验证。你提供usernamepassword,我提供密钥。对于所有后续请求,您每次都在 HTTP 标头中向我发送该密钥。我使用密钥来识别您,然后相应地允许/禁止操作。

    我假设一旦您可以对用户进行身份验证(等等..您是谁?),那么您就可以设置授权(您说 Micheal ?...好吧,您可以访问 /users

    还可以查看我的 backbone-parse plugin,了解如何针对外部 API 服务对用户进行身份验证#shamelessplug

    【讨论】:

      最近更新 更多