java - 为我的 API 实现 API key

标签 java javascript spring node.js api-key

我已经创建了一个 api,我想对谁使用它、使用频率等进行一些控制。我想要一个 API key 策略,以便用户必须提供 key 才能使用 API。但是我不知道如何实现它。用户使用用户名和密码注册。我想到的是在用户登录时分配一个 UUID 并将其存储在数据库的表中。然后每个请求都包含这个 uuid,并在服务器上对每个请求进行检查。

然而这似乎不对。有人可以解释创建 api key 的步骤吗,比如 dropbox、twitter、facebook 等?我想尝试自己实现。

最佳答案

Could someone explain the steps in order to create a api key like, dropbox, twitter, facebook etc. does? I want to try implement this myself.

生成 API key

  1. 选择一些您想使用的加密/解密方法
  2. 选择您将在加密之前添加到数据中的盐
  3. 决定你想要加密字符串中的哪些数据:时间戳、Uid、 Angular 色等。时间戳是其中最有用的部分,因为使用时间戳,你可以限制来自某个时间之前的 key 的请求,因此需要生成新的 key 。
  4. 将其捆绑在解密后可以解析的内容中。有些人使用 json 对象,有些人使用字符分隔的字符串

注意:如果您不希望它成为可解密的 key ,例如,它是经过哈希处理的,因此难以破解,那么您可以简单地遵循以下策略:制定一组步骤来形成您的未哈希数据string: sha1("some-secret"."some-other-bit-of-info"."etc"."etc") 然后API使用者有责任生成他们的自己的 key 。因此,只有当他们拥有构建它所需的必要部件/信息时,他们才能访问。

使用 API

以 Stripe 的 API 为例:

  1. 发出授权请求:返回一个 API key 。 "curl 使用 -u 标志传递基本身份验证凭据(在您的 API key 后添加一个冒号将阻止它询问您的密码)。"--Stripe Docs

  2. 将该 key 连同所有进一步的请求一起发送。

关于java - 为我的 API 实现 API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14149189/

相关文章:

java - 用java覆盖命令提示符中的多行

java - 从文本文件中读取整数并存储到数组中

javascript - 嵌入式 ember-cli 项目与 RequireJS 冲突

java - 在构建时获取 Maven 属性

Spring OAuth2.0 - 动态注册OAuth2.0客户端

spring - jar 的 META-INF 文件夹中的 pom.xml 的目的是什么?

java - Android:ListView 仅显示共享首选项保存的最后一项

java - 在 Java 中将 base64 转换为 PDF

javascript - 如何选择多个元素来捕获 JavaScript 点击事件?

javascript - 点击事件回调