2

我正在创建一个 node.js webapp 以使用“客户端凭据流”访问 GettyImages API

passport.js 支持吗?如果是,我该如何实施?

4

2 回答 2

3

护照通常用于对您网站上的用户进行身份验证。如果您的(网络)应用程序正在调用外部 API(例如 gettyimages),并且它正在向此类外部系统验证自己,那么您可能不需要它(也不需要任何框架)。客户端凭证流是一个简单的POST:

这取自他们的文档:

POST https://api.gettyimages.com/oauth2/token HTTP/1.1
Host: api.gettyimages.com
Content-Type: application/x-www-form-urlencoded

client_id=abc123&client_secret=yoursecret&grant_type=client_credentials

完整的文档在这里

于 2014-02-20T04:35:55.193 回答
0

@eugenio-pace之前的回答是 6 岁,从那时起很多事情都发生了变化。

关于使用客户端凭据访问 GettyImages API,您可以:

  1. 仍然进行直接 API 调用。这个例子(虽然在 Python 中)展示了如何。
  2. 为您的语言使用 GettyImages 客户端 SDK。其中有很多,但这里在gettyimages-api_nodejs中为 NodeJS解释了客户端凭据。

使用上面的选项 2,您可以继续使用 API 客户端。如果客户端凭据是通过 REST 调用获得的,您可以使用 PassportJS 和passport-oauth2来构建您的访问逻辑。

PassportJS 现在带有许多策略,值得先检查一下其他替代方案是否对您来说是更好的选择。


很酷的是,如果您想构建一个完整的 OAuth2 提供程序解决方案,那么 PassportJS 也可以为您提供便利。在这种情况下,客户端凭据是通过passport-oauth2-client-password策略(基于oauth2orize)提供的,并在此示例中进行了演示。

除了 oauth2orize 之外,另一个实现 OAuth 服务器的流行包是oauth2-server

于 2020-07-28T09:18:27.793 回答