Web API 令牌方案的好方法是什么?

2024-02-27

我正在为一个 Web 应用程序开发 REST API,到目前为止,我们已经在内部为几个配套应用程序开发了该 API。现在,我们正在考虑向外部开发人员开放,我们希望向 API 添加令牌,以帮助识别谁在发出请求,并总体上帮助管理其使用。此时,我们正在使用 https 和基本身份验证对 API 进行用户身份验证。

我们一直在讨论的令牌方案非常简单,其中每个开发人员将被分配 1 个或多个令牌,并且这些令牌将作为每个请求的参数传递。

我的问题是,如果您之前做过类似的事情,您是如何做到的(您做得更多还是更少,您如何处理安全性等)以及您有什么建议吗?


首先,您可能想看看http://OAuth.net http://OAuth.net。根据您的用例,它可能会提供您所需的安全性。

至于令牌,对于大多数协议来说它都是 BLOB,包括 OAuth。您可以以任何格式将您需要的任何信息放入其中。

这就是我们所做的,

  1. 首先,我们为每个开发人员分配一个具有相关秘密的密钥。
  2. 令牌本身是加密的名称-值对。我们将用户名、过期时间、会话 ID、角色等信息放在那里。它是用我们自己的秘密加密的,因此其他人无法破解。
  3. 为了方便使用 Web API,我们使用 URL 安全版本的 Base64,因此令牌始终是 URL 安全的。

希望有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web API 令牌方案的好方法是什么? 的相关文章

  • 使用 JAX-RS 进行异步 REST 调用

    我需要创建一个 RESTful 服务 它应该以以下方式支持异步调用 当用户调用某个方法时 他会获得 http 202 代码和 url 来轮询 在其中他可以看到请求的状态 目前我使用 JAX RS 及其注释 Path public inter
  • APPLICATION_JSON 无法解析或不是字段

    我在应用程序中生成 JSON 时遇到问题 我正在尝试有关的教程通过 AngularJS 使用 Java Restful Web 服务 https www youtube com watch v F201AN5UEg0 我创建了一个动态 We
  • Outlook Rest 调用表单 angularjs

    使用 Outlook 我正在尝试创建事件 当我使用 POSTMAN 发送请求时 它工作正常 但 Angularjs 中的相同代码却不起作用 代码有什么问题 请帮忙 scope createEvents function var url ht
  • SOA、客户端-服务器、Web 服务 - 有什么区别? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在阅读了一些有关 SOA Web 服务和客户端 服务器架构主题的文献之后 我真的对这些术语感到困惑 因为看不出它们之间的真正区别 有人
  • 为什么我们需要 RESTful Web 服务?

    我将学习 RESTful Web 服务 最好说我必须这样做 因为它是 CS 硕士学位课程的一部分 我在 Wikipedia 上阅读了一些信息 还在 Sun Developer Network 上阅读了一篇有关 REST 的文章 我发现这不是
  • REST API 登录模式

    我正在创建一个 REST api 严格遵循 apigee 建议 使用名词而不是动词 将 api 版本烘焙到 URL 中 每个集合有两个 api 路径 GET POST PUT DELETE 用法等 我正在开发登录系统 但不确定登录用户的正确
  • Java HttpURLConnection:内容长度计算

    我目前正在为 bitbucket issues RESTful API 开发一个库 我取得了很大的进步 现在我要解决这个部分更新问题 http confluence atlassian com display BBDEV Issues Is
  • 当 Spring 控制器中接受 text/csv 标头时抛出异常时出现 406

    我有一个控制器 其方法返回文本 csv 这对于正常的成功案例来说效果很好 但是如果抛出异常 并且我有一个标题Accept text csv 我收到 406 响应 例如 RequestMapping value foo method Requ
  • REST URL 结构建议

    我正在尝试为我正在开发的网站的愿望清单部分敲定一个宁静的网址结构 这是一个非常简单的模型 用户可以有许多愿望清单 每个愿望清单可以包含许多产品 目前我有明显的 CRUD URL 来操作愿望清单本身 GET account wishlists
  • 对多个路径使用 Single Jersey REST 类

    我已经开始使用 JAX RS 开发 REST 服务 使用 Jersey 非常简单 但是我在使用 Spring MVC 和 Jersey REST 类时遇到的一个区别是 Spring 支持忽略根路径元素并在方法级别具有单独的路径映射 因此 如
  • 如何访问 NFL 的 API?

    我一直在尝试访问或设法访问 NFL com 的数据 但尚未找到 这些网站上有公开文档 https api nfl com docs identity oauth2 index html 但这些文档不会告诉您如何获取客户端 ID 或客户端密钥
  • 使用 Spring RestTemplate 时忽略 SSL 证书验证

    我正在使用 Spring RestTemplate 发出 HTTPS 请求 并且我想忽略 SSL 证书 这是我创建restTemplate请求的代码 TrustStrategy acceptingTrustStrategy X509Cert
  • 如何向最终用户隐藏 REST API Url?

    是否可以隐藏我通过 AJAX 用于填充页面数据的 REST URL 我不希望其他人从我的 REST API 获取和使用 但需要使用它在我的网站中显示内容 如何向最终用户隐藏我的 REST API URL 无法在 JavaScript 中向最
  • Rails - map.resources 的冗余 RESTFUL 操作? (新建、创建)

    我想知道为什么当您使用 map resources 在 Rails 中创建静态路线时 它会生成以下操作 新建 创建 编辑 更新 只声明一项行动有什么问题吗 create and update并做这样的事情 def create unless
  • 如何进行 REST 式更新?

    如果我有一个对象 请说Employee 我想提供两种不同的更新方式 更新绩效评级或更新联系信息 构建 API 的 REST 式方式是什么 我认为正确的方法是 POST 我担心的是 对于用户来说 首先获取对象的两个部分 绩效评级和联系信息 仅
  • Azure API Manager 将所有内容公开,摆脱 Ocp-Apim-Subscription-Key

    我有一些通过 Azure API 管理代理的 REST API 出于某种原因 我希望将其公开以应对所有请求 从开发人员的角度来看 我想摆脱在标头 或请求 中设置密钥 Ocp Apim Subscription Key XXXXXXXXXXX
  • PHP:在 CURL GET 调用中使用 API 密钥

    我看过关于使用 api 密钥在curl 中验证 post 调用的帖子 我有一个 GET 调用 需要 apikey 进行授权 即请求必须具有包含 apiKey 的授权标头 我已经获得了 api 密钥并尝试将其用于 GET 调用
  • 用于 RESTful 轨道应用程序的简单面包屑

    是否有任何辅助方法 除了默认 Rails 面包屑导航 http wiki rubyonrails org rails pages Breadcrumbs 为特定页面动态生成面包屑导航 而无需在 RESTful 应用程序中传递琐碎的参数 也就
  • 以 RESTful 方式增加资源计数器:PUT 与 POST

    我有一个带有计数器的资源 为了举例 我们将该资源称为profile 计数器是数量views对于该配置文件 Per the 休息维基 http rest blueoxen net cgi bin wiki pl HttpMethods PUT
  • 当会话令牌无效时,我应该使用什么状态代码?

    创建 Web 服务 RESTful 时 当会话令牌无效时我应该使用什么状态代码 目前我公司的人给我发了一个404 未找到 但我认为这是不正确的 因为资源存在 也许我应该使用 401 Unauthorized 你怎么认为 您建议我在这种情况下

随机推荐

  • Azure 逻辑应用 - 用于部署文件系统 API 连接的 ARM 模板

    我正在尝试使用 ARM 模板部署文件系统 API 连接 我找不到此连接的parametersValue架构 因此尝试按照Azure门户上显示的参数命名它们 在 Azure 门户上编辑 API 连接屏幕截图1 https i stack im
  • 用自己的实现和信任管理器替换 SSLContext 默认值

    基于 Jcs 的回答 HttpUnit WebConversation SSL 问题 https stackoverflow com questions 4868654 httpunit webconversation ssl issues
  • 如何使用 Java 以编程方式签署二进制 MS Office 文档?

    我们如何在 Apache POI 或任何其他开源库中对旧版二进制 MS Office 文档 doc xls ppt 进行数字签名 Open XML 格式包含在如何使用 Java 以编程方式签署 MS Office XML 文档 https
  • 使用 GridLayout 搞乱计算器

    我在使布局看起来漂亮方面遇到了麻烦 为了了解基础知识 我决定创建一个简单的计算器应用程序 因此 我使用嵌套在 LinearLayout 中的 GridLayout 将按钮放置在文本字段下 这是我的布局的来源
  • UIView 上圆形层的快速遮罩

    我试图用圆形 CAShapeLayer 快速掩盖方形 UIView 我有以下内容 var snapFrame self snapButton frame var innerFrame CGRect x snapFrame minX 1 y
  • 如何使用 CompletableFuture 并行运行多个服务调用?

    我正在向用户返回以下响应 class FinalResponseDTO List
  • Pygame PNG 图像看起来已损坏

    我正在跟进本指南 http www nerdparadise com tech python pygame basics part2 尝试在 Pygame 窗口中显示基本的 PNG 图像 我的图像是一个简单的 150x150 绿球 没有透明
  • 无法反序列化 lambda

    就像一个小项目一样 我一直在尝试制作一个小东西 读取序列化的 lambda 本地或从 FTP 并调用它们的运行函数作为测试的一部分 以试验 Windows 中的文件关联 即打开某些文件类型 用某个程序打开它们 等等 但无论我尝试什么 它似乎
  • getDimension()/getDimensionPixelSize() - 乘数问题

    所以我有 android 2 3 5 设备 它是 NORMAL HDPI 我的项目中有一个dimens xml
  • 从临时服务器连接到 GitoLite 时出错 - ECONNREFUSED 部署错误

    我在尝试将以前工作的项目部署到开发服务器时遇到了一些麻烦 我没有设置系统 但我确实拥有我需要的所有凭据 我认为 在尝试 cap staging 部署之后 我到目前为止 然后它产生了一个错误 请看下面 triggering load call
  • sed 用 C++ 注释替换(单行)C 注释

    我如何使用 sed 将源文件中的所有 C 风格注释替换为 C 风格 所有这些 int main some comments to int main some comments 所有注释都是单行 并且代码之间没有像这样的注释 int f in
  • 多层神经网络不会预测负值

    我已经实现了一个多层感知器来预测输入向量的正弦 这些向量由随机选择的四个 1 0 1 组成 偏差设置为 1 网络应该预测向量内容之和的 sin 例如 输入 输出 Sin 0 1 1 0 1 我遇到的问题是网络永远不会预测负值 并且许多向量的
  • 初始化 tkinter 类的父级/主控是什么?

    Note 示例代码是一个删节版本 但可以运行基本功能 请重点关注class MainWindow tk Frame 问题 什么样的object可以起到parent or master for tkinter class初始化 我的例子 看示
  • OpenGL重叠丑陋的渲染

    我正在尝试使用 OpenGL 2 1 渲染场景 但重叠形状的边框很奇怪 我测试了一些 OpenGL 初始化 但没有任何改变 我将问题简化为一个简单的测试应用程序 其中有 2 个球体 但结果相同 我尝试了一些关于 Gl DEPTH TEST
  • 警告:未找到提供程序 com.sun.xml.internal.bind.v2.ContextFactory

    我在 JSF 应用程序中集成了一些 Web 服务Jersey 一切正常 甚至 OAuth 识别也正常 但 当启动我的网络服务器时 我总是收到此错误 INFO Scanning for root resource and provider c
  • csrf 与 ajax 和 django post

    使用jquery v1 7 1和django 1 3 我试图通过ajax发出post请求 在我找到的一些教程代码中web http lethain com intro to unintrusive javascript with djang
  • 如何获取javafx中子节点的访问权限?

    我有一棵这样的树 正如您所看到的 GridPane 有 10 列 它们每个都包含包裹在 AnchorPane 中的 BorderPane 每个 BorderPane 由 2 个标签和 1 个单选按钮组成 您可以在下面看到它的样子 我想问您如
  • 如何从 javascript HTMLCollection 获取元素

    我不明白为什么我无法从 HtmlCollection 获取元素 此代码示例 var col document getElementsByClassName jcrop holder console log col 在控制台上产生以下输出 我
  • cv::warpPerspective 仅显示扭曲图像的一部分

    我使用 getHomography 和 warpPerspective 将图像从前视角更改为中视角 它的工作原理是图像扭曲到所需的视角 但裁剪被关闭 它将扭曲的图像大部分移动到图像框之外 我认为原因是因为操作导致负坐标 我已经手动计算了用于
  • Web API 令牌方案的好方法是什么?

    我正在为一个 Web 应用程序开发 REST API 到目前为止 我们已经在内部为几个配套应用程序开发了该 API 现在 我们正在考虑向外部开发人员开放 我们希望向 API 添加令牌 以帮助识别谁在发出请求 并总体上帮助管理其使用 此时 我