【问题标题】:How to store token when using OAuth2 API使用 OAuth2 API 时如何存储令牌
【发布时间】:2016-02-14 20:40:59
【问题描述】:

我正在构建一个 Angular 前端应用程序,它使用来自 Strava API 的数据。我在 Node 和 ExpressJS 中构建了一个后端服务,它存储我的客户端 ID 和客户端密码,并将用户重定向到 Strava 的身份验证页面,以便他们可以允许我的应用请求他们的数据。

身份验证后,Strava 将用户重定向回我的应用,并使用他们的访问令牌作为查询字符串参数。每次后续请求都需要将访问令牌提交给 API。

我想知道如何向 API 发出请求的利弊。据我了解,我有以下选择:

  1. 将访问令牌客户端存储在 cookie 中,并从前端直接向 Strava API 提交请求。由于相同的来源策略,这需要使用 JSONP 完成。 (Strava API 支持 JSONP)。

  2. 将访问令牌服务器端存储在我的节点应用程序的会话变量中,并通过节点服务器发出所有请求。我会构建自己的 API 以允许前端与节点应用程序进行通信。

每种方法的优缺点是什么?

【问题讨论】:

    标签: angularjs node.js api rest oauth


    【解决方案1】:

    对于任何重要的事情,服务器端方法都是可行的。构建自己的 REST API 为您提供了更大的灵活性,它可以帮助您分离关注点 - 您的 Angular 应用程序可能不是处理繁重 REST API 逻辑的最佳场所。

    每个 REST API 提供商都有其 API 的速率/配额限制。因此,通过您的 Angular 应用程序实时向 Strava API 发出每个请求可能不是一种选择。您可能需要创建某种后台工作服务,以在特定时间间隔内缓存来自 Strava 数据库的所需数据。然后,每次用户向您的网站发出请求时,您都会向他们展示缓存的数据。

    【讨论】:

      猜你喜欢
      • 2020-03-17
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 2021-07-08
      • 2019-10-23
      • 1970-01-01
      • 2012-07-10
      • 2018-12-07
      相关资源
      最近更新 更多