【问题标题】:How do I authenticate a web request from Unity to Node without requiring user credentials?如何在不需要用户凭据的情况下验证从 Unity 到 Node 的 Web 请求?
【发布时间】:2019-11-30 17:57:20
【问题描述】:

我有一个单人 Unity 游戏,它记录有关游戏运行的统计信息,例如准确性/运行时间。我希望将这些统计信息保存到 Web 服务器/数据库上,以便稍后聚合它们,Web 服务器是使用 Express 的 Node 应用程序,数据库是 MongoDB 实例。我已经创建了 POST/GET 数据的 API 路由,但目前这些路由是公开的。通常,我会实现 JWT,用户必须登录才能发出 Web 请求,但由于游戏是单人游戏,因此没有可使用的登录凭据。

在不要求用户登录/注册帐户的情况下,验证是否已从 Unity 游戏中对我的网络服务进行了调用的最佳方法是什么?

到目前为止,我一直在考虑在 Unity 端使用每个请求都需要发送的密钥,但这很容易通过搜索源代码发现。

【问题讨论】:

    标签: api security authentication verify


    【解决方案1】:
    1. 在 Node 端的 REST API 之上实施 oAuth。现在调用者在调用您的 API 时必须提供访问令牌。确保您的实现支持您将在第 2 步中选择的流程。oauth2authorize 是一个流行的工具包。

    2. 选择适当的 oAuth 流程并在 Unity 端实施。一种可能性是client credentials grant,这是一种为服务到服务调用而设计的流程。另一种选择是exchanging JWT for an access token; JWT 的 payload 可以反映调用者是 Unity 游戏本身的安全上下文。

    【讨论】:

      猜你喜欢
      • 2012-09-13
      • 1970-01-01
      • 1970-01-01
      • 2019-05-21
      • 1970-01-01
      • 1970-01-01
      • 2015-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多