什么';在无状态web API中实现来宾用户请求安全性的最佳方法是什么?

什么';在无状态web API中实现来宾用户请求安全性的最佳方法是什么?,api,security,jwt,token,stateless,Api,Security,Jwt,Token,Stateless,现有的有状态web API将被无状态实现取代 当前有以下类型的活动用户会话: 临时来宾用户(还没有任何值得保存的内容)。 用户有标识符,但没有密码 持久访客用户(具有一些相关的有价值的数据,例如购物车、收藏夹等)。 用户有标识符,但没有密码。 通过cookie进行识别和验证。 会话可以通过注册转换为类型3。 会话被删除,并且在登录时启动类型为3的新会话 已登录的永久注册用户。 用户具有标识符和密码。 通过凭据或cookie进行识别和身份验证。 会话在注销时被删除 因此,我正在寻找一些最佳实践,以

现有的有状态web API将被无状态实现取代

当前有以下类型的活动用户会话:

  • 临时来宾用户(还没有任何值得保存的内容)。 用户有标识符,但没有密码
  • 持久访客用户(具有一些相关的有价值的数据,例如购物车、收藏夹等)。
    用户有标识符,但没有密码。 通过cookie进行识别和验证。 会话可以通过注册转换为类型3。 会话被删除,并且在登录时启动类型为3的新会话
  • 已登录的永久注册用户。 用户具有标识符和密码。 通过凭据或cookie进行识别和身份验证。 会话在注销时被删除
  • 因此,我正在寻找一些最佳实践,以无状态方式为这三种类型的会话实现类似功能。

    使用JWT令牌似乎是无状态身份验证的常见做法。类型1看起来很简单,因为请求不需要安全保护,所以不需要令牌。Type3有很多基于用户凭证生成JWT令牌的例子。类型2让我很困惑,因为用户没有密码。我想可以做的一件事是在后端为持久性客户机生成一些密码,并将其用于令牌生成。还是有更好的方法来处理这个问题

    此外,我还试图弄清楚当

    • 来宾用户注册(当前会话已转换)
    • 来宾用户登录(当前新会话启动)

      • 我们采用了以下解决方案:

      • 会话类型。我们将三种会话类型减少为两种:来宾(非持久)和用户(持久)。有价值的客人信息现在存储在cookies中

      • JWT。令牌存储在安全的HttpOnly cookie中。令牌包含用户id、用户类型、发行日期和到期时间。令牌使用密钥加密,并在生成新来宾或用户登录时在后端设置为响应cookie

      • 所以现在我们处于一个中间状态,在我们的整体中既有无状态的API,也有有状态的API,并且有两种安全机制同时工作。 下一步是提取无状态服务


        如果您遇到类似的问题,您也可以考虑在无状态服务之前使用状态API网关。这会带来某些好处,您可以在谷歌上搜索更多信息。

        我们采用了以下解决方案:

      • 会话类型。我们将三种会话类型减少为两种:来宾(非持久)和用户(持久)。有价值的客人信息现在存储在cookies中

      • JWT。令牌存储在安全的HttpOnly cookie中。令牌包含用户id、用户类型、发行日期和到期时间。令牌使用密钥加密,并在生成新来宾或用户登录时在后端设置为响应cookie

      • 所以现在我们处于一个中间状态,在我们的整体中既有无状态的API,也有有状态的API,并且有两种安全机制同时工作。 下一步是提取无状态服务

        如果您遇到类似的问题,您也可以考虑在无状态服务之前使用状态API网关。这会给你带来一些好处,你可以在谷歌上搜索更多信息