【问题标题】:REST API Authentication for client-to-server and server-to-server客户端到服务器和服务器到服务器的 REST API 身份验证
【发布时间】:2017-08-15 01:46:00
【问题描述】:

我有一个 REST api(nodejs+express+mongo) 被两种类型的用户使用:

  1. 最终用户(通过网站、使用 google-signin 的移动应用进行身份验证)。
  2. 将以编程方式使用 API 的网关/服务。

我的问题是为第二种用户处理身份验证的最佳方式是什么? 用户存储在我的数据库中(使用他们的电子邮件 ID 链接到 google-signin)

最终用户创建网关和服务,因此我可以提供一个接口来管理凭据。(例如,如果我使用 API 密钥或公私密钥对,那么用户可以使用网站添加/删除凭据用于网关/服务)。

我正在使用 passport-google-oauth2 策略来处理第一种情况的身份验证。为第二种消费者处理身份验证的最佳方式是什么?

【问题讨论】:

    标签: passport.js public-key-encryption api-key passport-google-oauth


    【解决方案1】:

    首先,OAuth 是一种授权协议,而不是身份验证协议。 Google 身份验证是在 Web 登录会话中执行的,所以我不清楚它如何与 REST 客户端结合使用。

    不幸的是,有很多方法可以解决您的问题,具体取决于您要编写多少代码、要使用多少现有服务以及您打算如何进行用户管理。

    【讨论】:

    • 我了解 OAuth 是一种授权协议。我的意思是我正在使用它来验证我的 rest API 的用户。我想我应该使用 google-signin 这个词而不是 googe-oauth。我的问题是关于如何为我的其他类型的 rest api 消费者进行身份验证,这些消费者是设备和服务。他们将以编程方式使用 api。我正在管理我的数据库中的用户(对于谷歌登录,我使用 emailid 链接到数据库用户条目)。我也在编写一个单独的授权层。因此,如果存在处理身份验证的现有解决方案,我更愿意使用它。
    猜你喜欢
    • 2012-08-28
    • 2019-07-23
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 2020-06-24
    • 2021-04-27
    • 1970-01-01
    • 2011-11-04
    相关资源
    最近更新 更多