当前位置: 首页 > 知识库问答 >
问题:

验证期间访问JWT令牌

宰父远
2023-03-14

我正在使用以下示例来玩Spring Cloud OAuth2实现:

https://github.com/spring-cloud-samples/authserver

https://github.com/spring-cloud-samples/sso

第一个是OAuth服务器,它在对用户进行身份验证时生成JWT令牌。第二个是正在被消耗的资源。根据OAuth规范,资源将用户的身份验证转发给authserver。

一切似乎都很好,这让我想到了其他问题:

    < li >在认证服务器中,在认证期间,我如何访问clientId和clientSecret? < li >我可以确定哪些值用于生成JWT令牌吗? < li >在SSO中,用户通过身份验证后,我如何访问令牌的内容(例如,主体)?

共有1个答案

宇文元明
2023-03-14

对3)的回答:将方法签名更改为包括:

@AuthenticationPrincipal  User principal

这样,认证凭证将被传递给Spring调用的控制器方法。另一种方式是通过安全上下文:

SecurityContext securityContext = SecurityContextHolder.getContext(); 
Authentication authentication = securityContext.getAuthentication();

至于2),我的猜测是,为了影响用于计算JWT令牌的参数,需要实现一个自定义的AccessTokenConverter。如果我的理解正确的话,默认的DefaultAccessTokenConverter不允许这样做。对此,我欢迎任何其他意见。

 类似资料:
  • 我有一个使用 Msal 库获取的 Azure AD JWT 令牌,但是当我尝试验证此令牌时出现问题: 客户端:共享点 Web 部件 另一方面,我有一个服务器应用程序(Java),其中验证了访问令牌 验证人: 法典 我的问题是,当我尝试验证此令牌时,我收到了此错误:使用算法验证时,令牌的签名无效:SHA256with RSA 我被困在这个,如果令牌是正确的,为什么我有这个错误? 问候

  • 我从KeyCloak获得签名的JWT令牌: 因此,访问令牌是: 我查询keydove的: 因此,公钥是: 现在,我尝试按如下方式进行脱机验证: 但我得到一个无效的密钥例外: 我需要公钥对象来验证访问令牌,如下所示: 怎么了?我看到了很多这段代码的例子,所以我怀疑问题出在密钥本身。

  • 我正在做一个项目(没有生产级别,只是为了提高我的技能),我正在使用JWT来处理身份验证。从我所读到的内容来看,仅使用JWT作为访问令牌是非常不安全的,因此我们需要刷新令牌。因此,在登录时,服务器返回一个访问令牌和一个刷新令牌(我将存储在httpOnly cookie中)。访问令牌在短时间内到期,但刷新令牌在到期时用于获取新令牌。 我的问题是,我们何时使用刷新令牌来获取新的访问令牌?是当用户想要获得

  • 我很难让Auth0以JWT格式返回访问令牌。我需要JWT格式的文件,以便使用javajwt库验证它们。 我正在使用Auth0登录,并使用获取访问令牌-我尝试将访问群体设置为我们的API标识符(在多个位置,包括lock auth参数和负载),但没有成功-返回访问令牌,但不是JWT。 或者,是否有用于验证“本机”Auth0访问令牌的Java库? 返回的代码用于POST到

  • 我目前正在使用Vapor开发Swift后端。我的iOS客户端使用新的iOS 13功能“使用Apple登录”。当用户登录时,我会得到一个身份令牌(访问令牌),这是一个由Apple签名的有效JWT令牌。这将在所有正在进行的通信中发送到服务器,以验证服务器提供的某些路由。 在服务器上,我想通过验证令牌签名来验证发送的令牌是否确实由Apple签名,并且不是由某些恶意用户专门创建的。Apple提供了一个HT

  • 我正在制作一个javascript客户端,它使用JWT令牌连接到Api。在服务器端没有问题,我可以创建令牌对其进行签名,然后验证签名,从而确保没有人篡改令牌。 但我如何在客户端做到这一点。我可以解码JWT令牌并查看头、负载和签名。但是如何在客户端验证签名?是否有用于此的库,如何将公钥传输到客户端? 如果我不验证签名,我怎么知道令牌没有被篡改?