如何在使用OAuth2 API时存储令牌

时间:2015-11-13 09:46:33

标签: angularjs node.js api rest oauth

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

对于任何非常重要的事情,服务器端方法都是可行的方法。构建自己的REST API可以提供更大的灵活性,并且可以帮助您分离您的顾虑 - 您的Angular应用程序可能不是重度REST API逻辑的最佳位置。

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