何时为 JWT 使用 RS256?

2023-11-25

所以,现在我正在构建一个供第三方使用的 API,并且我正在阅读有关 RS256 和 HS256 的内容。我的理解是,两者之间的区别在于,第一个使用公钥进行验证,使用私钥进行签名,而另一个则仅使用一个密钥。因此,如果您使用 RS256,因为您想保留您的信息,请使用 RS256。密钥安全并希望客户端验证令牌,但我不明白为什么您要验证客户端中的令牌?因为您向服务器发送了一个发布请求,然后它会向您发送回一个令牌,并且每当您想要发出授权请求时,您只需使用该令牌,服务器就会验证它,如果可以就让您继续。那么,为什么要在客户端验证令牌呢?我认为这是后端的职责。

我想也许我错了,希望你能帮忙解决这个问题。谢谢。

EDIT:

所以,我的问题是,我知道 RS256 和 HS256 之间的区别,但我不明白的是如何使用它的流程。现在我正在开发一个第三方api,我只需要在客户端请求时返回一个令牌,然后在需要它的请求中,只需从服务器验证它是否是有效令牌。据我了解,当你想从客户端验证你的令牌时,会使用RS256,如果这是正确的,有人可以给我一个例子,说明你何时或为什么要验证客户端中的令牌?


在以下情况下使用 RS256:

  • 令牌由第三方签名,通常是身份提供者(例如oauth2/oidc),并且您需要验证令牌是否是由受信任的实体颁发的

  • 令牌由客户签名,通常是为了访问 API,客户端之前已经注册了公钥

  • 令牌由 SingleSignOn 系统中的集中式身份验证服务器签名它们用于访问多个联合服务器

  • 令牌用于在两方之间传输数据,不一定用于认证目的,签名用于保证签名者的身份

在以下情况下使用 HS256:

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

何时为 JWT 使用 RS256? 的相关文章

随机推荐

  • 强制编译器选择以 const T& 作为参数的复制构造函数

    我正在编写一个类 其中有模板化构造函数和复制构造函数 每次我想使用非常量对象调用复制构造函数时 都会选择模板化构造函数 如何强制编译器选择复制构造函数 这是 mcve include
  • gcc/g++:“没有这样的文件或目录”

    g 给我以下形式的错误 foo cc
  • 使用 select 清除 angularJS 中的过滤器

    我在下面给出的 HTML 中使用 ngOptions 指令
  • 如何在 Spring boot 嵌入式 tomcat 中设置 HTTPS SSL Cipher Suite Preference

    我正在尝试根据服务器首选项设置 HTTPS SSL 密码套件首选项 而不是根据客户端和服务器支持的具有最高强度的通用密码套件自动选择 我想让服务器选择具有 TLS ECDHE 的服务器和客户端之间的共同点 以支持前向保密 我已经在 www
  • 删除所有以某个单词开头的 NSUserDefaults

    有没有办法让我 遍历 所有的列表NSUserDefault在我的 iPhone 应用程序中 只删除某些内容 例如 我想获取以某个单词开头的所有键名称 像这样的东西 NSUserDefaults standardUserDefaults re
  • 如何计算方向轴?

    之前 我根据解剖结构 例如爪子的脚趾 计算了方向轴 但我发现 当我无法很好地区分脚趾或者 脚跟 蓝色方块 偏离得很远时 这不起作用 所以我决定寻找更好的替代方案并决定尝试计算惯性轴 此页面很好地解释了如何计算它 但我很难理解从质心 或我的例
  • Numpy 中的块运算

    是否有任何方便的实用程序可以在 Numpy 数组上进行块操作 我正在考虑像 Ising 自旋重整化这样的操作 将矩阵划分为块并返回矩阵 其中每个块被其总和 平均值或其他函数替换 您可能正在寻找超级蝙蝠鱼的blockwise view 这使用
  • Android Google Places API,getAutocompletePredictions 返回状态“PLACES_API_ACCESS_NOT_CONFIGURED”

    我在使用 Android Google Places API 自动完成功能时遇到问题 我使用与 Android Google Maps API 相同的密钥 在文档中 写的是这样可以 这是我在清单中的定义
  • Matlab filter() 与 SciPy lfilter()

    根据他们的文档Matlab滤波器 and SciPylfilter 看起来他们应该是 兼容 的 然而我有一个问题 在Python中移植更大的Matlab代码 为此我得到了ValueError object of too small dept
  • 发布网站不会更新我的 CSS 包

    当我在发布模式下从 Visual Studio 运行代码并检查捆绑的样式表时 我可以看到对该捆绑中的 css 文件的更新 但是 当我将网站发布到服务器或本地计算机时 我对样式表的更改尚未生效 捆绑的样式表仍然是旧的样式表 我尝试过重置 II
  • 如何修复 ('throw er; // Unhandled 'error' event') 代码生命周期?

    我尝试创建一个 React 应用程序 我用的是命令提示符但是在创建应用程序后 当我尝试启动 npm 时 它给了我一些错误 我也尝试在 WebStorm IntelliJ 和 Visual Studio Code PowerShell 中创建
  • 角度动画在 IE Edge 中不起作用

    我在 Angular 中向我的组件添加了一个动画 然而 动画在 Chrome 和 Firefox 中工作正常 但在 IE Edge 中 尽管样式在状态更改时正确应用 但动画并未触发 但只是没有指定动画 有人有同样的问题吗 这是我的代码 an
  • 启动 Android Studio 时出错:无法创建 JVM:错误代码-6

    我安装了Android Studio并且运行正常 但因为它有点慢 所以我按照网站上的说明进行操作 Android Studio 速度慢时怎么办尽管我尝试卸载并重新安装 AS 以及 Java 但它使我无法重新打开 android studio
  • 此 jar 包含其签名者证书将在六个月内过期的条目

    我已经以各种方式对我的 jar 进行了签名 但是当我使用以下命令时 我不断收到上述错误消息 jarsigner verify verbose my jar 有没有办法消除这个错误 如果没有重新认证 我的代码会在六个月后停止工作吗 以下是用于
  • 从购物车页面删除 Woocommerce 购物车数量选择器

    我正在尝试从购物车页面删除 Woocommerce 购物车数量选择器 我正在商店存档页面上使用数量输入字段 并将其应用到购物车页面 我怎样才能删除它并且不允许用户更改它 我已尝试使用下面的代码进行以下操作 并从官方 Woocommerce
  • 在 Makefile 中找不到指向的库文件

    我正在尝试编译这个工具 下面是其 Makefile 的开头 CC gcc CFLAGS Wall O2 D TRACES DFLAGS g Wall o0 CPPFLAGS INCLUDES I LDFLAGS LIBRARIES L LD
  • 在 appsettings.json (asp.net core 本地化)中设置文化和 ui-culture?

    我有 asp net core 应用程序 我想要本地化和翻译 v 1 1 0 我希望源代码支持英语和挪威语部署 我发现这可能是一个startup cs配置 RequestLocalizationOptions localizationOpt
  • C 数组可以在元素之间包含填充吗?

    我听说有传言说 在 C 中 包含在结构内部的数组可能在数组元素之间添加了填充 现在显然 任何一对元素之间的填充量都不能变化 或者使用简单的指针算术不可能计算数组中的下一个元素 该谣言还指出 不包含在结构中的数组保证不包含填充 我至少知道那部
  • python、postgresql 中的数据库测试

    如何对使用 postgresql 的 python DAL 进行单元测试 在 sqlite 中 您可以为每个测试创建内存数据库 但对于 postgresql 则不能这样做 我想要一个可用于设置数据库并在测试完成后清理它的库 我使用 Sqla
  • 何时为 JWT 使用 RS256?

    所以 现在我正在构建一个供第三方使用的 API 并且我正在阅读有关 RS256 和 HS256 的内容 我的理解是 两者之间的区别在于 第一个使用公钥进行验证 使用私钥进行签名 而另一个则仅使用一个密钥 因此 如果您使用 RS256 因为您